提交 53f224cc 编写于 作者: T Tom Herbert 提交者: David S. Miller

forcedeth: GRO support

Add GRO support to forcedeth.
Signed-off-by: NTom Herbert <therbert@google.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 93bb64ea
...@@ -2817,7 +2817,7 @@ static int nv_rx_process(struct net_device *dev, int limit) ...@@ -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", dprintk(KERN_DEBUG "%s: nv_rx_process: %d bytes, proto %d accepted.\n",
dev->name, len, skb->protocol); dev->name, len, skb->protocol);
#ifdef CONFIG_FORCEDETH_NAPI #ifdef CONFIG_FORCEDETH_NAPI
netif_receive_skb(skb); napi_gro_receive(&np->napi, skb);
#else #else
netif_rx(skb); netif_rx(skb);
#endif #endif
...@@ -2910,7 +2910,7 @@ static int nv_rx_process_optimized(struct net_device *dev, int limit) ...@@ -2910,7 +2910,7 @@ static int nv_rx_process_optimized(struct net_device *dev, int limit)
if (likely(!np->vlangrp)) { if (likely(!np->vlangrp)) {
#ifdef CONFIG_FORCEDETH_NAPI #ifdef CONFIG_FORCEDETH_NAPI
netif_receive_skb(skb); napi_gro_receive(&np->napi, skb);
#else #else
netif_rx(skb); netif_rx(skb);
#endif #endif
...@@ -2918,15 +2918,15 @@ static int nv_rx_process_optimized(struct net_device *dev, int limit) ...@@ -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); vlanflags = le32_to_cpu(np->get_rx.ex->buflow);
if (vlanflags & NV_RX3_VLAN_TAG_PRESENT) { if (vlanflags & NV_RX3_VLAN_TAG_PRESENT) {
#ifdef CONFIG_FORCEDETH_NAPI #ifdef CONFIG_FORCEDETH_NAPI
vlan_hwaccel_receive_skb(skb, np->vlangrp, vlan_gro_receive(&np->napi, np->vlangrp,
vlanflags & NV_RX3_VLAN_TAG_MASK); vlanflags & NV_RX3_VLAN_TAG_MASK, skb);
#else #else
vlan_hwaccel_rx(skb, np->vlangrp, vlan_hwaccel_rx(skb, np->vlangrp,
vlanflags & NV_RX3_VLAN_TAG_MASK); vlanflags & NV_RX3_VLAN_TAG_MASK);
#endif #endif
} else { } else {
#ifdef CONFIG_FORCEDETH_NAPI #ifdef CONFIG_FORCEDETH_NAPI
netif_receive_skb(skb); napi_gro_receive(&np->napi, skb);
#else #else
netif_rx(skb); netif_rx(skb);
#endif #endif
...@@ -5711,6 +5711,9 @@ static int __devinit nv_probe(struct pci_dev *pci_dev, const struct pci_device_i ...@@ -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; np->txrxctl_bits |= NVREG_TXRXCTL_RXCHECK;
dev->features |= NETIF_F_IP_CSUM | NETIF_F_SG; dev->features |= NETIF_F_IP_CSUM | NETIF_F_SG;
dev->features |= NETIF_F_TSO; dev->features |= NETIF_F_TSO;
#ifdef CONFIG_FORCEDETH_NAPI
dev->features |= NETIF_F_GRO;
#endif
} }
np->vlanctl_bits = 0; np->vlanctl_bits = 0;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册