[netdrvr] sfc: Add TSO support
The SFC4000 controller does not have hardware support for TSO, and the core GSO code incurs a high cost in allocating and freeing skbs. This TSO implementation uses lightweight packet header structures and is substantially faster. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
This commit is contained in:
committed by
Jeff Garzik
parent
48cfb14f8b
commit
b9b39b625c
@ -1873,6 +1873,7 @@ static int efx_init_struct(struct efx_nic *efx, struct efx_nic_type *type,
|
||||
tx_queue->queue = i;
|
||||
tx_queue->buffer = NULL;
|
||||
tx_queue->channel = &efx->channel[0]; /* for safety */
|
||||
tx_queue->tso_headers_free = NULL;
|
||||
}
|
||||
for (i = 0; i < EFX_MAX_RX_QUEUES; i++) {
|
||||
rx_queue = &efx->rx_queue[i];
|
||||
@ -2071,7 +2072,8 @@ static int __devinit efx_pci_probe(struct pci_dev *pci_dev,
|
||||
net_dev = alloc_etherdev(sizeof(*efx));
|
||||
if (!net_dev)
|
||||
return -ENOMEM;
|
||||
net_dev->features |= NETIF_F_IP_CSUM | NETIF_F_SG | NETIF_F_HIGHDMA;
|
||||
net_dev->features |= (NETIF_F_IP_CSUM | NETIF_F_SG |
|
||||
NETIF_F_HIGHDMA | NETIF_F_TSO);
|
||||
if (lro)
|
||||
net_dev->features |= NETIF_F_LRO;
|
||||
efx = net_dev->priv;
|
||||
|
Reference in New Issue
Block a user