summaryrefslogtreecommitdiffstats
path: root/main/linux-grsec/r8169-add-gro-support.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/linux-grsec/r8169-add-gro-support.patch')
-rw-r--r--main/linux-grsec/r8169-add-gro-support.patch52
1 files changed, 52 insertions, 0 deletions
diff --git a/main/linux-grsec/r8169-add-gro-support.patch b/main/linux-grsec/r8169-add-gro-support.patch
new file mode 100644
index 000000000..d8ca8d3ad
--- /dev/null
+++ b/main/linux-grsec/r8169-add-gro-support.patch
@@ -0,0 +1,52 @@
+- Use napi_gro_receive() and vlan_gro_receive()
+- Enable GRO by default
+
+Tested on a RTL8111/8168 adapter
+
+Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
+CC: Francois Romieu <romieu@fr.zoreil.com>
+---
+ drivers/net/r8169.c | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
+index 56a11e2..ddff42b 100644
+--- a/drivers/net/r8169.c
++++ b/drivers/net/r8169.c
+@@ -1076,7 +1076,12 @@ static int rtl8169_rx_vlan_skb(struct rtl8169_private *tp, struct RxDesc *desc,
+ int ret;
+
+ if (vlgrp && (opts2 & RxVlanTag)) {
+- __vlan_hwaccel_rx(skb, vlgrp, swab16(opts2 & 0xffff), polling);
++ u16 vtag = swab16(opts2 & 0xffff);
++
++ if (polling)
++ vlan_gro_receive(&tp->napi, vlgrp, vtag, skb);
++ else
++ __vlan_hwaccel_rx(skb, vlgrp, vtag, polling);
+ ret = 0;
+ } else
+ ret = -1;
+@@ -3186,6 +3191,7 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
+ #ifdef CONFIG_R8169_VLAN
+ dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
+ #endif
++ dev->features |= NETIF_F_GRO;
+
+ tp->intr_mask = 0xffff;
+ tp->align = cfg->align;
+@@ -4561,7 +4567,7 @@ static int rtl8169_rx_interrupt(struct net_device *dev,
+
+ if (rtl8169_rx_vlan_skb(tp, desc, skb, polling) < 0) {
+ if (likely(polling))
+- netif_receive_skb(skb);
++ napi_gro_receive(&tp->napi, skb);
+ else
+ netif_rx(skb);
+ }
+
+
+--
+To unsubscribe from this list: send the line "unsubscribe netdev" in
+the body of a message to majordomo@vger.kernel.org
+More majordomo info at http://vger.kernel.org/majordomo-info.html \ No newline at end of file