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