[IPSEC]: Move ip_summed zapping out of xfrm6_rcv_spi
authorHerbert Xu <herbert@gondor.apana.org.au>
Thu, 18 Oct 2007 04:30:07 +0000 (21:30 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 18 Oct 2007 04:30:07 +0000 (21:30 -0700)
Not every transform needs to zap ip_summed.  For example, a pure tunnel
mode encapsulation does not affect the hardware checksum at all.  In fact,
every algorithm (that needs this) other than AH6 already does its own
ip_summed zapping.

This patch moves the zapping into AH6 which is in line with what IPv4 does.

Possible future optimisation: Checksum the data as we copy them in IPComp.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/ah6.c
net/ipv6/xfrm6_input.c

index f9f6891..a8221d1 100644 (file)
@@ -344,6 +344,8 @@ static int ah6_input(struct xfrm_state *x, struct sk_buff *skb)
            pskb_expand_head(skb, 0, 0, GFP_ATOMIC))
                goto out;
 
+       skb->ip_summed = CHECKSUM_NONE;
+
        hdr_len = skb->data - skb_network_header(skb);
        ah = (struct ip_auth_hdr *)skb->data;
        ahp = x->data;
index 596a730..b1201c3 100644 (file)
@@ -97,7 +97,6 @@ int xfrm6_rcv_spi(struct sk_buff *skb, int nexthdr, __be32 spi)
        memcpy(skb->sp->xvec + skb->sp->len, xfrm_vec,
               xfrm_nr * sizeof(xfrm_vec[0]));
        skb->sp->len += xfrm_nr;
-       skb->ip_summed = CHECKSUM_NONE;
 
        nf_reset(skb);