aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6/xfrm6_input.c
diff options
context:
space:
mode:
authorPatrick McHardy <kaber@trash.net>2006-01-07 02:02:34 -0500
committerDavid S. Miller <davem@sunset.davemloft.net>2006-01-07 15:57:29 -0500
commit951dbc8ac714b04c36296b8b5c36c8e036ce433f (patch)
tree7f3599987f6b6db765f66c65d5c1cefe1457ea6a /net/ipv6/xfrm6_input.c
parent16a6677fdf1d1194f688f8291b06fbaff248c353 (diff)
[IPV6]: Move nextheader offset to the IP6CB
Move nextheader offset to the IP6CB to make it possible to pass a packet to ip6_input_finish multiple times and have it skip already parsed headers. As a nice side effect this gets rid of the manual hopopts skipping in ip6_input_finish. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6/xfrm6_input.c')
-rw-r--r--net/ipv6/xfrm6_input.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/net/ipv6/xfrm6_input.c b/net/ipv6/xfrm6_input.c
index 28c29d78338e..1079e47f3933 100644
--- a/net/ipv6/xfrm6_input.c
+++ b/net/ipv6/xfrm6_input.c
@@ -26,7 +26,7 @@ static inline void ipip6_ecn_decapsulate(struct sk_buff *skb)
26 IP6_ECN_set_ce(inner_iph); 26 IP6_ECN_set_ce(inner_iph);
27} 27}
28 28
29int xfrm6_rcv_spi(struct sk_buff **pskb, unsigned int *nhoffp, u32 spi) 29int xfrm6_rcv_spi(struct sk_buff **pskb, u32 spi)
30{ 30{
31 struct sk_buff *skb = *pskb; 31 struct sk_buff *skb = *pskb;
32 int err; 32 int err;
@@ -38,7 +38,7 @@ int xfrm6_rcv_spi(struct sk_buff **pskb, unsigned int *nhoffp, u32 spi)
38 int nexthdr; 38 int nexthdr;
39 unsigned int nhoff; 39 unsigned int nhoff;
40 40
41 nhoff = *nhoffp; 41 nhoff = IP6CB(skb)->nhoff;
42 nexthdr = skb->nh.raw[nhoff]; 42 nexthdr = skb->nh.raw[nhoff];
43 43
44 seq = 0; 44 seq = 0;
@@ -144,7 +144,7 @@ drop:
144 144
145EXPORT_SYMBOL(xfrm6_rcv_spi); 145EXPORT_SYMBOL(xfrm6_rcv_spi);
146 146
147int xfrm6_rcv(struct sk_buff **pskb, unsigned int *nhoffp) 147int xfrm6_rcv(struct sk_buff **pskb)
148{ 148{
149 return xfrm6_rcv_spi(pskb, nhoffp, 0); 149 return xfrm6_rcv_spi(pskb, 0);
150} 150}