On Wed, Jul 15, 2015 at 02:25:59PM +0200, Wolfgang Walter wrote:
>
> Yes. Switching TSO off and leaving GRO on works, too.

OK, could you please try this patch?

---8<---
We need to set the SKB_GSO_SIT bit if we detect a 6-in-4 tunnel
when doing GRO.  Otherwise we may throw a packet at TSO hardware
that doesn't know what to do with it.

Fixes: 19424e052fb4 ("sit: Add gro callbacks to sit_offload")
Reported-by: Wolfgang Walter <li...@stwm.de>
Signed-off-by: Herbert Xu <herb...@gondor.apana.org.au>

diff --git a/net/ipv6/ip6_offload.c b/net/ipv6/ip6_offload.c
index e893cd1..1252eac 100644
--- a/net/ipv6/ip6_offload.c
+++ b/net/ipv6/ip6_offload.c
@@ -289,11 +289,21 @@ static struct packet_offload ipv6_packet_offload 
__read_mostly = {
        },
 };
 
+static int sit_gro_complete(struct sk_buff *skb, int nhoff)
+{
+       int err = ipv6_gro_complete(skb, nhoff);
+
+       skb->encapsulation = 1;
+       skb_shinfo(skb)->gso_type |= SKB_GSO_SIT;
+
+       return err;
+}
+
 static const struct net_offload sit_offload = {
        .callbacks = {
                .gso_segment    = ipv6_gso_segment,
                .gro_receive    = ipv6_gro_receive,
-               .gro_complete   = ipv6_gro_complete,
+               .gro_complete   = sit_gro_complete,
        },
 };
 
-- 
Email: Herbert Xu <herb...@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to