diff options
author | Michael Brown <mcb30@ipxe.org> | 2015-05-16 14:26:00 +0100 |
---|---|---|
committer | Michael Brown <mcb30@ipxe.org> | 2015-05-16 14:54:31 +0100 |
commit | 9e2121be0d5d2b25173503c4f577471bec618928 (patch) | |
tree | 3361e62b094fbde0bc5b994a054171ca2a06197a /src/drivers/net/intelx.c | |
parent | 28ce9b6cc02800239e77c49355e85a29d6ef346c (diff) | |
download | ipxe-9e2121be0d5d2b25173503c4f577471bec618928.tar.gz |
[intel] Allow for the use of advanced TX descriptors
Intel virtual function NICs almost work with the use of "legacy"
transmit and receive descriptors (which are backwards compatible right
back to the original Intel Gigabit NICs).
Unfortunately the "TX switching" feature (which allows for VM<->VM
traffic to be looped back within the NIC itself) does not work when a
legacy TX descriptor is used: the packet is instead sent onto the
wire.
Fix by allowing for the use of an "advanced" TX descriptor (containing
exactly the same information as is found in the "legacy" descriptor).
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/drivers/net/intelx.c')
-rw-r--r-- | src/drivers/net/intelx.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/drivers/net/intelx.c b/src/drivers/net/intelx.c index d2bb19b0..982b74f1 100644 --- a/src/drivers/net/intelx.c +++ b/src/drivers/net/intelx.c @@ -396,8 +396,10 @@ static int intelx_probe ( struct pci_device *pci ) { netdev->dev = &pci->dev; memset ( intel, 0, sizeof ( *intel ) ); intel->port = PCI_FUNC ( pci->busdevfn ); - intel_init_ring ( &intel->tx, INTEL_NUM_TX_DESC, INTELX_TD ); - intel_init_ring ( &intel->rx, INTEL_NUM_RX_DESC, INTELX_RD ); + intel_init_ring ( &intel->tx, INTEL_NUM_TX_DESC, INTELX_TD, + intel_describe_tx ); + intel_init_ring ( &intel->rx, INTEL_NUM_RX_DESC, INTELX_RD, + intel_describe_rx ); /* Fix up PCI device */ adjust_pci_device ( pci ); |