From: Eli Cooper <elicoo...@gmx.com> Date: Mon, 24 Oct 2016 23:07:12 +0800
> diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c > index 202d16a..4110562 100644 > --- a/net/ipv6/ip6_tunnel.c > +++ b/net/ipv6/ip6_tunnel.c > @@ -1205,6 +1205,7 @@ ip4ip6_tnl_xmit(struct sk_buff *skb, struct net_device > *dev) > int err; > > memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt)); > + IP6CB(skb)->frag_max_size = 0; > > tproto = ACCESS_ONCE(t->parms.proto); > if (tproto != IPPROTO_IPIP && tproto != 0) This doesn't look right at all. Either skb->cb is interpreted as IPCB() past this point, or it is interpreted as IP6CB(). So pick which structure is used, and simply clear that specific structure.