diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2007-10-15 15:50:28 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2007-10-15 15:50:28 -0400 |
commit | e5bbef20e017efcb10700398cc048c49b98628e0 (patch) | |
tree | 5139dfbfb416eaeb43cc75645e486fe6a103e39b /net/ipv6 | |
parent | a224be766bf593f7bcd534ca0c48dbd3eaf7bfce (diff) |
[IPV6]: Replace sk_buff ** with sk_buff * in input handlers
With all the users of the double pointers removed from the IPv6 input path,
this patch converts all occurances of sk_buff ** to sk_buff * in IPv6 input
handlers.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6')
-rw-r--r-- | net/ipv6/exthdrs.c | 41 | ||||
-rw-r--r-- | net/ipv6/icmp.c | 5 | ||||
-rw-r--r-- | net/ipv6/ip6_input.c | 4 | ||||
-rw-r--r-- | net/ipv6/reassembly.c | 3 | ||||
-rw-r--r-- | net/ipv6/tcp_ipv6.c | 3 | ||||
-rw-r--r-- | net/ipv6/tunnel6.c | 6 | ||||
-rw-r--r-- | net/ipv6/udp.c | 7 | ||||
-rw-r--r-- | net/ipv6/udp_impl.h | 2 | ||||
-rw-r--r-- | net/ipv6/udplite.c | 4 | ||||
-rw-r--r-- | net/ipv6/xfrm6_input.c | 4 |
10 files changed, 30 insertions, 49 deletions
diff --git a/net/ipv6/exthdrs.c b/net/ipv6/exthdrs.c index 0ff2bf12ecd1..1e89efd38a0c 100644 --- a/net/ipv6/exthdrs.c +++ b/net/ipv6/exthdrs.c | |||
@@ -102,7 +102,7 @@ EXPORT_SYMBOL_GPL(ipv6_find_tlv); | |||
102 | 102 | ||
103 | struct tlvtype_proc { | 103 | struct tlvtype_proc { |
104 | int type; | 104 | int type; |
105 | int (*func)(struct sk_buff **skbp, int offset); | 105 | int (*func)(struct sk_buff *skb, int offset); |
106 | }; | 106 | }; |
107 | 107 | ||
108 | /********************* | 108 | /********************* |
@@ -111,10 +111,8 @@ struct tlvtype_proc { | |||
111 | 111 | ||
112 | /* An unknown option is detected, decide what to do */ | 112 | /* An unknown option is detected, decide what to do */ |
113 | 113 | ||
114 | static int ip6_tlvopt_unknown(struct sk_buff **skbp, int optoff) | 114 | static int ip6_tlvopt_unknown(struct sk_buff *skb, int optoff) |
115 | { | 115 | { |
116 | struct sk_buff *skb = *skbp; | ||
117 | |||
118 | switch ((skb_network_header(skb)[optoff] & 0xC0) >> 6) { | 116 | switch ((skb_network_header(skb)[optoff] & 0xC0) >> 6) { |
119 | case 0: /* ignore */ | 117 | case 0: /* ignore */ |
120 | return 1; | 118 | return 1; |
@@ -139,9 +137,8 @@ static int ip6_tlvopt_unknown(struct sk_buff **skbp, int optoff) | |||
139 | 137 | ||
140 | /* Parse tlv encoded option header (hop-by-hop or destination) */ | 138 | /* Parse tlv encoded option header (hop-by-hop or destination) */ |
141 | 139 | ||
142 | static int ip6_parse_tlv(struct tlvtype_proc *procs, struct sk_buff **skbp) | 140 | static int ip6_parse_tlv(struct tlvtype_proc *procs, struct sk_buff *skb) |
143 | { | 141 | { |
144 | struct sk_buff *skb = *skbp; | ||
145 | struct tlvtype_proc *curr; | 142 | struct tlvtype_proc *curr; |
146 | const unsigned char *nh = skb_network_header(skb); | 143 | const unsigned char *nh = skb_network_header(skb); |
147 | int off = skb_network_header_len(skb); | 144 | int off = skb_network_header_len(skb); |
@@ -172,13 +169,13 @@ static int ip6_parse_tlv(struct tlvtype_proc *procs, struct sk_buff **skbp) | |||
172 | /* type specific length/alignment | 169 | /* type specific length/alignment |
173 | checks will be performed in the | 170 | checks will be performed in the |
174 | func(). */ | 171 | func(). */ |
175 | if (curr->func(skbp, off) == 0) | 172 | if (curr->func(skb, off) == 0) |
176 | return 0; | 173 | return 0; |
177 | break; | 174 | break; |
178 | } | 175 | } |
179 | } | 176 | } |
180 | if (curr->type < 0) { | 177 | if (curr->type < 0) { |
181 | if (ip6_tlvopt_unknown(skbp, off) == 0) | 178 | if (ip6_tlvopt_unknown(skb, off) == 0) |
182 | return 0; | 179 | return 0; |
183 | } | 180 | } |
184 | break; | 181 | break; |
@@ -198,9 +195,8 @@ bad: | |||
198 | *****************************/ | 195 | *****************************/ |
199 | 196 | ||
200 | #if defined(CONFIG_IPV6_MIP6) || defined(CONFIG_IPV6_MIP6_MODULE) | 197 | #if defined(CONFIG_IPV6_MIP6) || defined(CONFIG_IPV6_MIP6_MODULE) |
201 | static int ipv6_dest_hao(struct sk_buff **skbp, int optoff) | 198 | static int ipv6_dest_hao(struct sk_buff *skb, int optoff) |
202 | { | 199 | { |
203 | struct sk_buff *skb = *skbp; | ||
204 | struct ipv6_destopt_hao *hao; | 200 | struct ipv6_destopt_hao *hao; |
205 | struct inet6_skb_parm *opt = IP6CB(skb); | 201 | struct inet6_skb_parm *opt = IP6CB(skb); |
206 | struct ipv6hdr *ipv6h = ipv6_hdr(skb); | 202 | struct ipv6hdr *ipv6h = ipv6_hdr(skb); |
@@ -271,9 +267,8 @@ static struct tlvtype_proc tlvprocdestopt_lst[] = { | |||
271 | {-1, NULL} | 267 | {-1, NULL} |
272 | }; | 268 | }; |
273 | 269 | ||
274 | static int ipv6_destopt_rcv(struct sk_buff **skbp) | 270 | static int ipv6_destopt_rcv(struct sk_buff *skb) |
275 | { | 271 | { |
276 | struct sk_buff *skb = *skbp; | ||
277 | struct inet6_skb_parm *opt = IP6CB(skb); | 272 | struct inet6_skb_parm *opt = IP6CB(skb); |
278 | #if defined(CONFIG_IPV6_MIP6) || defined(CONFIG_IPV6_MIP6_MODULE) | 273 | #if defined(CONFIG_IPV6_MIP6) || defined(CONFIG_IPV6_MIP6_MODULE) |
279 | __u16 dstbuf; | 274 | __u16 dstbuf; |
@@ -295,9 +290,8 @@ static int ipv6_destopt_rcv(struct sk_buff **skbp) | |||
295 | #endif | 290 | #endif |
296 | 291 | ||
297 | dst = dst_clone(skb->dst); | 292 | dst = dst_clone(skb->dst); |
298 | if (ip6_parse_tlv(tlvprocdestopt_lst, skbp)) { | 293 | if (ip6_parse_tlv(tlvprocdestopt_lst, skb)) { |
299 | dst_release(dst); | 294 | dst_release(dst); |
300 | skb = *skbp; | ||
301 | skb->transport_header += (skb_transport_header(skb)[1] + 1) << 3; | 295 | skb->transport_header += (skb_transport_header(skb)[1] + 1) << 3; |
302 | opt = IP6CB(skb); | 296 | opt = IP6CB(skb); |
303 | #if defined(CONFIG_IPV6_MIP6) || defined(CONFIG_IPV6_MIP6_MODULE) | 297 | #if defined(CONFIG_IPV6_MIP6) || defined(CONFIG_IPV6_MIP6_MODULE) |
@@ -328,10 +322,8 @@ void __init ipv6_destopt_init(void) | |||
328 | NONE header. No data in packet. | 322 | NONE header. No data in packet. |
329 | ********************************/ | 323 | ********************************/ |
330 | 324 | ||
331 | static int ipv6_nodata_rcv(struct sk_buff **skbp) | 325 | static int ipv6_nodata_rcv(struct sk_buff *skb) |
332 | { | 326 | { |
333 | struct sk_buff *skb = *skbp; | ||
334 | |||
335 | kfree_skb(skb); | 327 | kfree_skb(skb); |
336 | return 0; | 328 | return 0; |
337 | } | 329 | } |
@@ -351,9 +343,8 @@ void __init ipv6_nodata_init(void) | |||
351 | Routing header. | 343 | Routing header. |
352 | ********************************/ | 344 | ********************************/ |
353 | 345 | ||
354 | static int ipv6_rthdr_rcv(struct sk_buff **skbp) | 346 | static int ipv6_rthdr_rcv(struct sk_buff *skb) |
355 | { | 347 | { |
356 | struct sk_buff *skb = *skbp; | ||
357 | struct inet6_skb_parm *opt = IP6CB(skb); | 348 | struct inet6_skb_parm *opt = IP6CB(skb); |
358 | struct in6_addr *addr = NULL; | 349 | struct in6_addr *addr = NULL; |
359 | struct in6_addr daddr; | 350 | struct in6_addr daddr; |
@@ -565,9 +556,8 @@ static inline struct inet6_dev *ipv6_skb_idev(struct sk_buff *skb) | |||
565 | 556 | ||
566 | /* Router Alert as of RFC 2711 */ | 557 | /* Router Alert as of RFC 2711 */ |
567 | 558 | ||
568 | static int ipv6_hop_ra(struct sk_buff **skbp, int optoff) | 559 | static int ipv6_hop_ra(struct sk_buff *skb, int optoff) |
569 | { | 560 | { |
570 | struct sk_buff *skb = *skbp; | ||
571 | const unsigned char *nh = skb_network_header(skb); | 561 | const unsigned char *nh = skb_network_header(skb); |
572 | 562 | ||
573 | if (nh[optoff + 1] == 2) { | 563 | if (nh[optoff + 1] == 2) { |
@@ -582,9 +572,8 @@ static int ipv6_hop_ra(struct sk_buff **skbp, int optoff) | |||
582 | 572 | ||
583 | /* Jumbo payload */ | 573 | /* Jumbo payload */ |
584 | 574 | ||
585 | static int ipv6_hop_jumbo(struct sk_buff **skbp, int optoff) | 575 | static int ipv6_hop_jumbo(struct sk_buff *skb, int optoff) |
586 | { | 576 | { |
587 | struct sk_buff *skb = *skbp; | ||
588 | const unsigned char *nh = skb_network_header(skb); | 577 | const unsigned char *nh = skb_network_header(skb); |
589 | u32 pkt_len; | 578 | u32 pkt_len; |
590 | 579 | ||
@@ -635,9 +624,8 @@ static struct tlvtype_proc tlvprochopopt_lst[] = { | |||
635 | { -1, } | 624 | { -1, } |
636 | }; | 625 | }; |
637 | 626 | ||
638 | int ipv6_parse_hopopts(struct sk_buff **skbp) | 627 | int ipv6_parse_hopopts(struct sk_buff *skb) |
639 | { | 628 | { |
640 | struct sk_buff *skb = *skbp; | ||
641 | struct inet6_skb_parm *opt = IP6CB(skb); | 629 | struct inet6_skb_parm *opt = IP6CB(skb); |
642 | 630 | ||
643 | /* | 631 | /* |
@@ -654,8 +642,7 @@ int ipv6_parse_hopopts(struct sk_buff **skbp) | |||
654 | } | 642 | } |
655 | 643 | ||
656 | opt->hop = sizeof(struct ipv6hdr); | 644 | opt->hop = sizeof(struct ipv6hdr); |
657 | if (ip6_parse_tlv(tlvprochopopt_lst, skbp)) { | 645 | if (ip6_parse_tlv(tlvprochopopt_lst, skb)) { |
658 | skb = *skbp; | ||
659 | skb->transport_header += (skb_transport_header(skb)[1] + 1) << 3; | 646 | skb->transport_header += (skb_transport_header(skb)[1] + 1) << 3; |
660 | opt = IP6CB(skb); | 647 | opt = IP6CB(skb); |
661 | opt->nhoff = sizeof(struct ipv6hdr); | 648 | opt->nhoff = sizeof(struct ipv6hdr); |
diff --git a/net/ipv6/icmp.c b/net/ipv6/icmp.c index 47b8ce232e84..9bb031fa1c2f 100644 --- a/net/ipv6/icmp.c +++ b/net/ipv6/icmp.c | |||
@@ -82,7 +82,7 @@ EXPORT_SYMBOL(icmpv6msg_statistics); | |||
82 | static DEFINE_PER_CPU(struct socket *, __icmpv6_socket) = NULL; | 82 | static DEFINE_PER_CPU(struct socket *, __icmpv6_socket) = NULL; |
83 | #define icmpv6_socket __get_cpu_var(__icmpv6_socket) | 83 | #define icmpv6_socket __get_cpu_var(__icmpv6_socket) |
84 | 84 | ||
85 | static int icmpv6_rcv(struct sk_buff **pskb); | 85 | static int icmpv6_rcv(struct sk_buff *skb); |
86 | 86 | ||
87 | static struct inet6_protocol icmpv6_protocol = { | 87 | static struct inet6_protocol icmpv6_protocol = { |
88 | .handler = icmpv6_rcv, | 88 | .handler = icmpv6_rcv, |
@@ -614,9 +614,8 @@ static void icmpv6_notify(struct sk_buff *skb, int type, int code, __be32 info) | |||
614 | * Handle icmp messages | 614 | * Handle icmp messages |
615 | */ | 615 | */ |
616 | 616 | ||
617 | static int icmpv6_rcv(struct sk_buff **pskb) | 617 | static int icmpv6_rcv(struct sk_buff *skb) |
618 | { | 618 | { |
619 | struct sk_buff *skb = *pskb; | ||
620 | struct net_device *dev = skb->dev; | 619 | struct net_device *dev = skb->dev; |
621 | struct inet6_dev *idev = __in6_dev_get(dev); | 620 | struct inet6_dev *idev = __in6_dev_get(dev); |
622 | struct in6_addr *saddr, *daddr; | 621 | struct in6_addr *saddr, *daddr; |
diff --git a/net/ipv6/ip6_input.c b/net/ipv6/ip6_input.c index e7c85069a5db..fac6f7f9dd73 100644 --- a/net/ipv6/ip6_input.c +++ b/net/ipv6/ip6_input.c | |||
@@ -125,7 +125,7 @@ int ipv6_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt | |||
125 | } | 125 | } |
126 | 126 | ||
127 | if (hdr->nexthdr == NEXTHDR_HOP) { | 127 | if (hdr->nexthdr == NEXTHDR_HOP) { |
128 | if (ipv6_parse_hopopts(&skb) < 0) { | 128 | if (ipv6_parse_hopopts(skb) < 0) { |
129 | IP6_INC_STATS_BH(idev, IPSTATS_MIB_INHDRERRORS); | 129 | IP6_INC_STATS_BH(idev, IPSTATS_MIB_INHDRERRORS); |
130 | rcu_read_unlock(); | 130 | rcu_read_unlock(); |
131 | return 0; | 131 | return 0; |
@@ -199,7 +199,7 @@ resubmit: | |||
199 | !xfrm6_policy_check(NULL, XFRM_POLICY_IN, skb)) | 199 | !xfrm6_policy_check(NULL, XFRM_POLICY_IN, skb)) |
200 | goto discard; | 200 | goto discard; |
201 | 201 | ||
202 | ret = ipprot->handler(&skb); | 202 | ret = ipprot->handler(skb); |
203 | if (ret > 0) | 203 | if (ret > 0) |
204 | goto resubmit; | 204 | goto resubmit; |
205 | else if (ret == 0) | 205 | else if (ret == 0) |
diff --git a/net/ipv6/reassembly.c b/net/ipv6/reassembly.c index ed3c7b7912a8..6ad19cfc2025 100644 --- a/net/ipv6/reassembly.c +++ b/net/ipv6/reassembly.c | |||
@@ -628,9 +628,8 @@ out_fail: | |||
628 | return -1; | 628 | return -1; |
629 | } | 629 | } |
630 | 630 | ||
631 | static int ipv6_frag_rcv(struct sk_buff **skbp) | 631 | static int ipv6_frag_rcv(struct sk_buff *skb) |
632 | { | 632 | { |
633 | struct sk_buff *skb = *skbp; | ||
634 | struct frag_hdr *fhdr; | 633 | struct frag_hdr *fhdr; |
635 | struct frag_queue *fq; | 634 | struct frag_queue *fq; |
636 | struct ipv6hdr *hdr = ipv6_hdr(skb); | 635 | struct ipv6hdr *hdr = ipv6_hdr(skb); |
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c index a07b59c528f3..737b755342bd 100644 --- a/net/ipv6/tcp_ipv6.c +++ b/net/ipv6/tcp_ipv6.c | |||
@@ -1668,9 +1668,8 @@ ipv6_pktoptions: | |||
1668 | return 0; | 1668 | return 0; |
1669 | } | 1669 | } |
1670 | 1670 | ||
1671 | static int tcp_v6_rcv(struct sk_buff **pskb) | 1671 | static int tcp_v6_rcv(struct sk_buff *skb) |
1672 | { | 1672 | { |
1673 | struct sk_buff *skb = *pskb; | ||
1674 | struct tcphdr *th; | 1673 | struct tcphdr *th; |
1675 | struct sock *sk; | 1674 | struct sock *sk; |
1676 | int ret; | 1675 | int ret; |
diff --git a/net/ipv6/tunnel6.c b/net/ipv6/tunnel6.c index 23e2809878ae..6323921b40be 100644 --- a/net/ipv6/tunnel6.c +++ b/net/ipv6/tunnel6.c | |||
@@ -87,9 +87,8 @@ int xfrm6_tunnel_deregister(struct xfrm6_tunnel *handler, unsigned short family) | |||
87 | 87 | ||
88 | EXPORT_SYMBOL(xfrm6_tunnel_deregister); | 88 | EXPORT_SYMBOL(xfrm6_tunnel_deregister); |
89 | 89 | ||
90 | static int tunnel6_rcv(struct sk_buff **pskb) | 90 | static int tunnel6_rcv(struct sk_buff *skb) |
91 | { | 91 | { |
92 | struct sk_buff *skb = *pskb; | ||
93 | struct xfrm6_tunnel *handler; | 92 | struct xfrm6_tunnel *handler; |
94 | 93 | ||
95 | if (!pskb_may_pull(skb, sizeof(struct ipv6hdr))) | 94 | if (!pskb_may_pull(skb, sizeof(struct ipv6hdr))) |
@@ -106,9 +105,8 @@ drop: | |||
106 | return 0; | 105 | return 0; |
107 | } | 106 | } |
108 | 107 | ||
109 | static int tunnel46_rcv(struct sk_buff **pskb) | 108 | static int tunnel46_rcv(struct sk_buff *skb) |
110 | { | 109 | { |
111 | struct sk_buff *skb = *pskb; | ||
112 | struct xfrm6_tunnel *handler; | 110 | struct xfrm6_tunnel *handler; |
113 | 111 | ||
114 | if (!pskb_may_pull(skb, sizeof(struct ipv6hdr))) | 112 | if (!pskb_may_pull(skb, sizeof(struct ipv6hdr))) |
diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c index 82ff26dd4470..caebad6ee510 100644 --- a/net/ipv6/udp.c +++ b/net/ipv6/udp.c | |||
@@ -405,10 +405,9 @@ static inline int udp6_csum_init(struct sk_buff *skb, struct udphdr *uh, | |||
405 | return 0; | 405 | return 0; |
406 | } | 406 | } |
407 | 407 | ||
408 | int __udp6_lib_rcv(struct sk_buff **pskb, struct hlist_head udptable[], | 408 | int __udp6_lib_rcv(struct sk_buff *skb, struct hlist_head udptable[], |
409 | int proto) | 409 | int proto) |
410 | { | 410 | { |
411 | struct sk_buff *skb = *pskb; | ||
412 | struct sock *sk; | 411 | struct sock *sk; |
413 | struct udphdr *uh; | 412 | struct udphdr *uh; |
414 | struct net_device *dev = skb->dev; | 413 | struct net_device *dev = skb->dev; |
@@ -494,9 +493,9 @@ discard: | |||
494 | return 0; | 493 | return 0; |
495 | } | 494 | } |
496 | 495 | ||
497 | static __inline__ int udpv6_rcv(struct sk_buff **pskb) | 496 | static __inline__ int udpv6_rcv(struct sk_buff *skb) |
498 | { | 497 | { |
499 | return __udp6_lib_rcv(pskb, udp_hash, IPPROTO_UDP); | 498 | return __udp6_lib_rcv(skb, udp_hash, IPPROTO_UDP); |
500 | } | 499 | } |
501 | 500 | ||
502 | /* | 501 | /* |
diff --git a/net/ipv6/udp_impl.h b/net/ipv6/udp_impl.h index 6e252f318f7c..2d3fda601232 100644 --- a/net/ipv6/udp_impl.h +++ b/net/ipv6/udp_impl.h | |||
@@ -6,7 +6,7 @@ | |||
6 | #include <net/addrconf.h> | 6 | #include <net/addrconf.h> |
7 | #include <net/inet_common.h> | 7 | #include <net/inet_common.h> |
8 | 8 | ||
9 | extern int __udp6_lib_rcv(struct sk_buff **, struct hlist_head [], int ); | 9 | extern int __udp6_lib_rcv(struct sk_buff *, struct hlist_head [], int ); |
10 | extern void __udp6_lib_err(struct sk_buff *, struct inet6_skb_parm *, | 10 | extern void __udp6_lib_err(struct sk_buff *, struct inet6_skb_parm *, |
11 | int , int , int , __be32 , struct hlist_head []); | 11 | int , int , int , __be32 , struct hlist_head []); |
12 | 12 | ||
diff --git a/net/ipv6/udplite.c b/net/ipv6/udplite.c index f54016a55004..766566f7de47 100644 --- a/net/ipv6/udplite.c +++ b/net/ipv6/udplite.c | |||
@@ -17,9 +17,9 @@ | |||
17 | 17 | ||
18 | DEFINE_SNMP_STAT(struct udp_mib, udplite_stats_in6) __read_mostly; | 18 | DEFINE_SNMP_STAT(struct udp_mib, udplite_stats_in6) __read_mostly; |
19 | 19 | ||
20 | static int udplitev6_rcv(struct sk_buff **pskb) | 20 | static int udplitev6_rcv(struct sk_buff *skb) |
21 | { | 21 | { |
22 | return __udp6_lib_rcv(pskb, udplite_hash, IPPROTO_UDPLITE); | 22 | return __udp6_lib_rcv(skb, udplite_hash, IPPROTO_UDPLITE); |
23 | } | 23 | } |
24 | 24 | ||
25 | static void udplitev6_err(struct sk_buff *skb, | 25 | static void udplitev6_err(struct sk_buff *skb, |
diff --git a/net/ipv6/xfrm6_input.c b/net/ipv6/xfrm6_input.c index c858537cec4b..02f69e544f6f 100644 --- a/net/ipv6/xfrm6_input.c +++ b/net/ipv6/xfrm6_input.c | |||
@@ -133,9 +133,9 @@ drop: | |||
133 | 133 | ||
134 | EXPORT_SYMBOL(xfrm6_rcv_spi); | 134 | EXPORT_SYMBOL(xfrm6_rcv_spi); |
135 | 135 | ||
136 | int xfrm6_rcv(struct sk_buff **pskb) | 136 | int xfrm6_rcv(struct sk_buff *skb) |
137 | { | 137 | { |
138 | return xfrm6_rcv_spi(*pskb, 0); | 138 | return xfrm6_rcv_spi(skb, 0); |
139 | } | 139 | } |
140 | 140 | ||
141 | EXPORT_SYMBOL(xfrm6_rcv); | 141 | EXPORT_SYMBOL(xfrm6_rcv); |