[IPSEC]: Move ip_summed zapping out of xfrm6_rcv_spi
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>
This commit is contained in:
committed by
David S. Miller
parent
33b5ecb8f6
commit
7aa68cb906
@@ -344,6 +344,8 @@ static int ah6_input(struct xfrm_state *x, struct sk_buff *skb)
|
|||||||
pskb_expand_head(skb, 0, 0, GFP_ATOMIC))
|
pskb_expand_head(skb, 0, 0, GFP_ATOMIC))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
|
skb->ip_summed = CHECKSUM_NONE;
|
||||||
|
|
||||||
hdr_len = skb->data - skb_network_header(skb);
|
hdr_len = skb->data - skb_network_header(skb);
|
||||||
ah = (struct ip_auth_hdr *)skb->data;
|
ah = (struct ip_auth_hdr *)skb->data;
|
||||||
ahp = x->data;
|
ahp = x->data;
|
||||||
|
@@ -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,
|
memcpy(skb->sp->xvec + skb->sp->len, xfrm_vec,
|
||||||
xfrm_nr * sizeof(xfrm_vec[0]));
|
xfrm_nr * sizeof(xfrm_vec[0]));
|
||||||
skb->sp->len += xfrm_nr;
|
skb->sp->len += xfrm_nr;
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
|
||||||
|
|
||||||
nf_reset(skb);
|
nf_reset(skb);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user