kernel: skip GRO for packets bridged to other hosts

Eliminates excessive skb copying when bridging from LAN to WLAN on
ramips.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@44797 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
Felix Fietkau
2015-03-15 20:32:09 +00:00
parent eff9c0f696
commit 0e879af4ad
3 changed files with 36 additions and 0 deletions

View File

@@ -0,0 +1,12 @@
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -4003,6 +4003,9 @@ static enum gro_result dev_gro_receive(s
enum gro_result ret;
int grow;
+ if (skb->pkt_type == PACKET_OTHERHOST)
+ goto normal;
+
if (!(skb->dev->features & NETIF_F_GRO))
goto normal;

View File

@@ -0,0 +1,12 @@
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -3967,6 +3967,9 @@ static enum gro_result dev_gro_receive(s
enum gro_result ret;
int grow;
+ if (skb->pkt_type == PACKET_OTHERHOST)
+ goto normal;
+
if (!(skb->dev->features & NETIF_F_GRO))
goto normal;

View File

@@ -0,0 +1,12 @@
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -4005,6 +4005,9 @@ static enum gro_result dev_gro_receive(s
enum gro_result ret;
int grow;
+ if (skb->pkt_type == PACKET_OTHERHOST)
+ goto normal;
+
if (!(skb->dev->features & NETIF_F_GRO))
goto normal;