diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2007-03-16 16:26:39 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-04-26 01:26:19 -0400 |
commit | cfe1fc7759fdacb0c650b575daed1692bf3eaece (patch) | |
tree | b8ed6fbc6c028595f5e82be1bccdeb2727e0a0b2 /net/ipv6/reassembly.c | |
parent | bff9b61ce330df04c6830d823c30c04203543f01 (diff) |
[SK_BUFF]: Introduce skb_network_header_len
For the common sequence "skb->h.raw - skb->nh.raw", similar to skb->mac_len,
that is precalculated tho, don't think we need to bloat skb with one more
member, so just use this new helper, reducing the number of non-skbuff.h
references to the layer headers even more.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6/reassembly.c')
-rw-r--r-- | net/ipv6/reassembly.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/net/ipv6/reassembly.c b/net/ipv6/reassembly.c index 31d4271ea540..6dfacfa7a599 100644 --- a/net/ipv6/reassembly.c +++ b/net/ipv6/reassembly.c | |||
@@ -679,7 +679,7 @@ static int ip6_frag_reasm(struct frag_queue *fq, struct sk_buff **skb_in, | |||
679 | /* Yes, and fold redundant checksum back. 8) */ | 679 | /* Yes, and fold redundant checksum back. 8) */ |
680 | if (head->ip_summed == CHECKSUM_COMPLETE) | 680 | if (head->ip_summed == CHECKSUM_COMPLETE) |
681 | head->csum = csum_partial(skb_network_header(head), | 681 | head->csum = csum_partial(skb_network_header(head), |
682 | head->h.raw - head->nh.raw, | 682 | skb_network_header_len(head), |
683 | head->csum); | 683 | head->csum); |
684 | 684 | ||
685 | rcu_read_lock(); | 685 | rcu_read_lock(); |
@@ -715,13 +715,15 @@ static int ipv6_frag_rcv(struct sk_buff **skbp) | |||
715 | /* Jumbo payload inhibits frag. header */ | 715 | /* Jumbo payload inhibits frag. header */ |
716 | if (hdr->payload_len==0) { | 716 | if (hdr->payload_len==0) { |
717 | IP6_INC_STATS(ip6_dst_idev(skb->dst), IPSTATS_MIB_INHDRERRORS); | 717 | IP6_INC_STATS(ip6_dst_idev(skb->dst), IPSTATS_MIB_INHDRERRORS); |
718 | icmpv6_param_prob(skb, ICMPV6_HDR_FIELD, skb->h.raw-skb->nh.raw); | 718 | icmpv6_param_prob(skb, ICMPV6_HDR_FIELD, |
719 | skb_network_header_len(skb)); | ||
719 | return -1; | 720 | return -1; |
720 | } | 721 | } |
721 | if (!pskb_may_pull(skb, (skb_transport_offset(skb) + | 722 | if (!pskb_may_pull(skb, (skb_transport_offset(skb) + |
722 | sizeof(struct frag_hdr)))) { | 723 | sizeof(struct frag_hdr)))) { |
723 | IP6_INC_STATS(ip6_dst_idev(skb->dst), IPSTATS_MIB_INHDRERRORS); | 724 | IP6_INC_STATS(ip6_dst_idev(skb->dst), IPSTATS_MIB_INHDRERRORS); |
724 | icmpv6_param_prob(skb, ICMPV6_HDR_FIELD, skb->h.raw-skb->nh.raw); | 725 | icmpv6_param_prob(skb, ICMPV6_HDR_FIELD, |
726 | skb_network_header_len(skb)); | ||
725 | return -1; | 727 | return -1; |
726 | } | 728 | } |
727 | 729 | ||