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 --- 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;