aboutsummaryrefslogtreecommitdiff
path: root/src/drivers/net/intelx.c
diff options
context:
space:
mode:
authorMichael Brown <mcb30@ipxe.org>2015-05-16 14:26:00 +0100
committerMichael Brown <mcb30@ipxe.org>2015-05-16 14:54:31 +0100
commit9e2121be0d5d2b25173503c4f577471bec618928 (patch)
tree3361e62b094fbde0bc5b994a054171ca2a06197a /src/drivers/net/intelx.c
parent28ce9b6cc02800239e77c49355e85a29d6ef346c (diff)
downloadipxe-9e2121be0d5d2b25173503c4f577471bec618928.zip
ipxe-9e2121be0d5d2b25173503c4f577471bec618928.tar.gz
ipxe-9e2121be0d5d2b25173503c4f577471bec618928.tar.bz2
[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.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/drivers/net/intelx.c b/src/drivers/net/intelx.c
index d2bb19b..982b74f 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 );