diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2007-03-10 20:16:10 -0500 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-04-26 01:24:58 -0400 |
commit | bbe735e4247dba32568a305553b010081c8dea99 (patch) | |
tree | 95d96619c85785a47ccee48965b68d99cf946854 /net/ipv6 | |
parent | e7dd65dafda5737a983c04d652a69ab8da78ee3f (diff) |
[SK_BUFF]: Introduce skb_network_offset()
For the quite common 'skb->nh.raw - skb->data' sequence.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6')
-rw-r--r-- | net/ipv6/icmp.c | 4 | ||||
-rw-r--r-- | net/ipv6/ip6_output.c | 4 |
2 files changed, 4 insertions, 4 deletions
diff --git a/net/ipv6/icmp.c b/net/ipv6/icmp.c index a91dfbce8433..aa4a0a59ffac 100644 --- a/net/ipv6/icmp.c +++ b/net/ipv6/icmp.c | |||
@@ -206,7 +206,7 @@ static __inline__ int opt_unrec(struct sk_buff *skb, __u32 offset) | |||
206 | { | 206 | { |
207 | u8 _optval, *op; | 207 | u8 _optval, *op; |
208 | 208 | ||
209 | offset += skb->nh.raw - skb->data; | 209 | offset += skb_network_offset(skb); |
210 | op = skb_header_pointer(skb, offset, sizeof(_optval), &_optval); | 210 | op = skb_header_pointer(skb, offset, sizeof(_optval), &_optval); |
211 | if (op == NULL) | 211 | if (op == NULL) |
212 | return 1; | 212 | return 1; |
@@ -431,7 +431,7 @@ void icmpv6_send(struct sk_buff *skb, int type, int code, __u32 info, | |||
431 | tclass = 0; | 431 | tclass = 0; |
432 | 432 | ||
433 | msg.skb = skb; | 433 | msg.skb = skb; |
434 | msg.offset = skb->nh.raw - skb->data; | 434 | msg.offset = skb_network_offset(skb); |
435 | msg.type = type; | 435 | msg.type = type; |
436 | 436 | ||
437 | len = skb->len - msg.offset; | 437 | len = skb->len - msg.offset; |
diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c index 8a7b5c760147..47d00210cba1 100644 --- a/net/ipv6/ip6_output.c +++ b/net/ipv6/ip6_output.c | |||
@@ -89,7 +89,7 @@ static inline int ip6_output_finish(struct sk_buff *skb) | |||
89 | static int ip6_dev_loopback_xmit(struct sk_buff *newskb) | 89 | static int ip6_dev_loopback_xmit(struct sk_buff *newskb) |
90 | { | 90 | { |
91 | skb_reset_mac_header(newskb); | 91 | skb_reset_mac_header(newskb); |
92 | __skb_pull(newskb, newskb->nh.raw - newskb->data); | 92 | __skb_pull(newskb, skb_network_offset(newskb)); |
93 | newskb->pkt_type = PACKET_LOOPBACK; | 93 | newskb->pkt_type = PACKET_LOOPBACK; |
94 | newskb->ip_summed = CHECKSUM_UNNECESSARY; | 94 | newskb->ip_summed = CHECKSUM_UNNECESSARY; |
95 | BUG_TRAP(newskb->dst); | 95 | BUG_TRAP(newskb->dst); |
@@ -1330,7 +1330,7 @@ int ip6_push_pending_frames(struct sock *sk) | |||
1330 | 1330 | ||
1331 | /* move skb->data to ip header from ext header */ | 1331 | /* move skb->data to ip header from ext header */ |
1332 | if (skb->data < skb->nh.raw) | 1332 | if (skb->data < skb->nh.raw) |
1333 | __skb_pull(skb, skb->nh.raw - skb->data); | 1333 | __skb_pull(skb, skb_network_offset(skb)); |
1334 | while ((tmp_skb = __skb_dequeue(&sk->sk_write_queue)) != NULL) { | 1334 | while ((tmp_skb = __skb_dequeue(&sk->sk_write_queue)) != NULL) { |
1335 | __skb_pull(tmp_skb, skb->h.raw - skb->nh.raw); | 1335 | __skb_pull(tmp_skb, skb->h.raw - skb->nh.raw); |
1336 | *tail_skb = tmp_skb; | 1336 | *tail_skb = tmp_skb; |