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