forcedeth: GRO support
authorTom Herbert <therbert@google.com>
Mon, 3 May 2010 19:08:45 +0000 (19:08 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 4 May 2010 06:24:19 +0000 (23:24 -0700)
Add GRO support to forcedeth.

Signed-off-by: Tom Herbert <therbert@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/forcedeth.c

index 5cf0e66..4a24cc7 100644 (file)
@@ -2817,7 +2817,7 @@ static int nv_rx_process(struct net_device *dev, int limit)
                dprintk(KERN_DEBUG "%s: nv_rx_process: %d bytes, proto %d accepted.\n",
                                        dev->name, len, skb->protocol);
 #ifdef CONFIG_FORCEDETH_NAPI
-               netif_receive_skb(skb);
+               napi_gro_receive(&np->napi, skb);
 #else
                netif_rx(skb);
 #endif
@@ -2910,7 +2910,7 @@ static int nv_rx_process_optimized(struct net_device *dev, int limit)
 
                        if (likely(!np->vlangrp)) {
 #ifdef CONFIG_FORCEDETH_NAPI
-                               netif_receive_skb(skb);
+                               napi_gro_receive(&np->napi, skb);
 #else
                                netif_rx(skb);
 #endif
@@ -2918,15 +2918,15 @@ static int nv_rx_process_optimized(struct net_device *dev, int limit)
                                vlanflags = le32_to_cpu(np->get_rx.ex->buflow);
                                if (vlanflags & NV_RX3_VLAN_TAG_PRESENT) {
 #ifdef CONFIG_FORCEDETH_NAPI
-                                       vlan_hwaccel_receive_skb(skb, np->vlangrp,
-                                                                vlanflags & NV_RX3_VLAN_TAG_MASK);
+                                       vlan_gro_receive(&np->napi, np->vlangrp,
+                                                        vlanflags & NV_RX3_VLAN_TAG_MASK, skb);
 #else
                                        vlan_hwaccel_rx(skb, np->vlangrp,
                                                        vlanflags & NV_RX3_VLAN_TAG_MASK);
 #endif
                                } else {
 #ifdef CONFIG_FORCEDETH_NAPI
-                                       netif_receive_skb(skb);
+                                       napi_gro_receive(&np->napi, skb);
 #else
                                        netif_rx(skb);
 #endif
@@ -5711,6 +5711,9 @@ static int __devinit nv_probe(struct pci_dev *pci_dev, const struct pci_device_i
                np->txrxctl_bits |= NVREG_TXRXCTL_RXCHECK;
                dev->features |= NETIF_F_IP_CSUM | NETIF_F_SG;
                dev->features |= NETIF_F_TSO;
+#ifdef CONFIG_FORCEDETH_NAPI
+               dev->features |= NETIF_F_GRO;
+#endif
        }
 
        np->vlanctl_bits = 0;