This patch fixes "kernel: raw v6 hw csum failure." messages. It distracted me from the TCPMSS issue, I'll take care of that tomorrow.
[IPV6]: Fix raw socket hardware checksum failures When packets hit raw sockets the csum update isn't done yet, do it manually. Packets can also reach rawv6_rcv on the output path through ip6_call_ra_chain, in this case skb->ip_summed is CHECKSUM_NONE and this codepath isn't executed. Signed-off-by: Patrick McHardy <[EMAIL PROTECTED]> --- commit 619592d37b7c4ad57c4a9f01d30465a8c4d32af1 tree 3e877169788411b1c31bd34c9f547e0f0fb7452e parent ead40dd0539f0223d80f956f823f7091f90ad92b author Patrick McHardy <[EMAIL PROTECTED]> Wed, 17 Aug 2005 05:27:26 +0200 committer Patrick McHardy <[EMAIL PROTECTED]> Wed, 17 Aug 2005 05:27:26 +0200 net/ipv6/raw.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c --- a/net/ipv6/raw.c +++ b/net/ipv6/raw.c @@ -337,6 +337,8 @@ int rawv6_rcv(struct sock *sk, struct sk if (skb->ip_summed != CHECKSUM_UNNECESSARY) { if (skb->ip_summed == CHECKSUM_HW) { + skb_postpull_rcsum(skb, skb->nh.raw, + skb->h.raw - skb->nh.raw); skb->ip_summed = CHECKSUM_UNNECESSARY; if (csum_ipv6_magic(&skb->nh.ipv6h->saddr, &skb->nh.ipv6h->daddr,