From: Stephen Hemminger <[EMAIL PROTECTED]>
Date: Tue, 6 Sep 2005 21:47:47 -0700

> Several places in IPV6 need to use pskb_trim_rcsum to handle
> the case of skb's received on devices that set CHECKSUM_HW
> 
> Signed-off-by: Stephen Hemminger <[EMAIL PROTECTED]>

Everything looks fine except this hunk:

> -     if (ulen < skb->len) {
> -             if (__pskb_trim(skb, ulen))
> -                     goto discard;
> -             saddr = &skb->nh.ipv6h->saddr;
> -             daddr = &skb->nh.ipv6h->daddr;
> -             uh = skb->h.uh;
> -     }
> +     if (pskb_trim_rcsum(skb, ulen))
> +             goto discard;

You do need to reset those two pointers (saddr and daddr)
into the ipv6 header, because __pskb_trim() can call
pskb_expand_head() which changes the data area buffer on
us.

Please fix this up and resubmit, thanks a lot.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to