|
|
@ -1,3 +1,17 @@ |
|
|
|
|
|
|
|
Subject: NET: skip GRO for otherhost packets
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
For network drivers using napi_gro_receive, packets are run through GRO,
|
|
|
|
|
|
|
|
even when the destination MAC address does not match, and they're supposed
|
|
|
|
|
|
|
|
to be delivered to another host behind a different bridge port.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This can be very expensive, because for drivers without TSO or scatter-
|
|
|
|
|
|
|
|
gather, this can only be undone by copying the skb and checksumming it
|
|
|
|
|
|
|
|
again.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Fix this by leaving skbs with PACKET_OTHERHOST untouched.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
|
|
|
|
|
|
|
|
|
|
|
--- a/net/core/dev.c
|
|
|
|
--- a/net/core/dev.c
|
|
|
|
+++ b/net/core/dev.c
|
|
|
|
+++ b/net/core/dev.c
|
|
|
|
@@ -4003,6 +4003,9 @@ static enum gro_result dev_gro_receive(s
|
|
|
|
@@ -4003,6 +4003,9 @@ static enum gro_result dev_gro_receive(s
|
|
|
|