summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Herbert <therbert@google.com>2010-05-03 23:08:45 +0400
committerDavid S. Miller <davem@davemloft.net>2010-05-04 10:24:19 +0400
commit53f224cc5f8f650f8e8d86abbe990c93f12834c8 (patch)
treee87ce4e64c959ac47275784b6bf5b9df14ad1fb9
parent93bb64eac10aad3dae6178d7da94765f207d121f (diff)
downloadlinux-53f224cc5f8f650f8e8d86abbe990c93f12834c8.tar.xz
forcedeth: GRO support
Add GRO support to forcedeth. Signed-off-by: Tom Herbert <therbert@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/forcedeth.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c
index 5cf0e6615695..4a24cc7d9555 100644
--- a/drivers/net/forcedeth.c
+++ b/drivers/net/forcedeth.c
@@ -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;