• Eric Dumazet's avatar
    ipv6: gro: fix PV6_GRO_CB(skb)->proto problem · 86347245
    Eric Dumazet authored
    It seems IPV6_GRO_CB(skb)->proto can be destroyed in skb_gro_receive()
    if a new skb is allocated (to serve as an anchor for frag_list)
    
    We copy NAPI_GRO_CB() only (not the IPV6 specific part) in :
    
    *NAPI_GRO_CB(nskb) = *NAPI_GRO_CB(p);
    
    So we leave IPV6_GRO_CB(nskb)->proto to 0 (fresh skb allocation) instead
    of IPPROTO_TCP (6)
    
    ipv6_gro_complete() isnt able to call ops->gro_complete()
    [ tcp6_gro_complete() ]
    
    Fix this by moving proto in NAPI_GRO_CB() and getting rid of
    IPV6_GRO_CB
    Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
    Cc: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    86347245
af_inet6.c 29.8 KB