netxen: enable GRO support
Signed-off-by: Amit Kumar Salecha <amit@netxen.com> Signed-off-by: Dhananjay Phadke <dhananjay@netxen.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
f6d21f4412
commit
a92e9e65f0
@@ -923,7 +923,8 @@ no_skb:
|
|||||||
|
|
||||||
static struct netxen_rx_buffer *
|
static struct netxen_rx_buffer *
|
||||||
netxen_process_rcv(struct netxen_adapter *adapter,
|
netxen_process_rcv(struct netxen_adapter *adapter,
|
||||||
int ring, int index, int length, int cksum, int pkt_offset)
|
int ring, int index, int length, int cksum, int pkt_offset,
|
||||||
|
struct nx_host_sds_ring *sds_ring)
|
||||||
{
|
{
|
||||||
struct net_device *netdev = adapter->netdev;
|
struct net_device *netdev = adapter->netdev;
|
||||||
struct netxen_recv_context *recv_ctx = &adapter->recv_ctx;
|
struct netxen_recv_context *recv_ctx = &adapter->recv_ctx;
|
||||||
@@ -951,7 +952,7 @@ netxen_process_rcv(struct netxen_adapter *adapter,
|
|||||||
|
|
||||||
skb->protocol = eth_type_trans(skb, netdev);
|
skb->protocol = eth_type_trans(skb, netdev);
|
||||||
|
|
||||||
netif_receive_skb(skb);
|
napi_gro_receive(&sds_ring->napi, skb);
|
||||||
|
|
||||||
adapter->stats.no_rcv++;
|
adapter->stats.no_rcv++;
|
||||||
adapter->stats.rxbytes += length;
|
adapter->stats.rxbytes += length;
|
||||||
@@ -1011,7 +1012,7 @@ netxen_process_rcv_ring(struct nx_host_sds_ring *sds_ring, int max)
|
|||||||
pkt_offset = netxen_get_sts_pkt_offset(sts_data);
|
pkt_offset = netxen_get_sts_pkt_offset(sts_data);
|
||||||
|
|
||||||
rxbuf = netxen_process_rcv(adapter, ring, index,
|
rxbuf = netxen_process_rcv(adapter, ring, index,
|
||||||
length, cksum, pkt_offset);
|
length, cksum, pkt_offset, sds_ring);
|
||||||
|
|
||||||
if (rxbuf)
|
if (rxbuf)
|
||||||
list_add_tail(&rxbuf->list, &sds_ring->free_list[ring]);
|
list_add_tail(&rxbuf->list, &sds_ring->free_list[ring]);
|
||||||
|
@@ -981,6 +981,7 @@ netxen_nic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
|||||||
SET_ETHTOOL_OPS(netdev, &netxen_nic_ethtool_ops);
|
SET_ETHTOOL_OPS(netdev, &netxen_nic_ethtool_ops);
|
||||||
|
|
||||||
netdev->features |= (NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO);
|
netdev->features |= (NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO);
|
||||||
|
netdev->features |= (NETIF_F_GRO);
|
||||||
netdev->vlan_features |= (NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO);
|
netdev->vlan_features |= (NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO);
|
||||||
|
|
||||||
if (NX_IS_REVISION_P3(revision_id)) {
|
if (NX_IS_REVISION_P3(revision_id)) {
|
||||||
|
Reference in New Issue
Block a user