diff options
-rw-r--r-- | net/ipv6/Makefile | 2 | ||||
-rw-r--r-- | net/ipv6/addrconf.c | 9 | ||||
-rw-r--r-- | net/ipv6/af_inet6.c | 12 | ||||
-rw-r--r-- | net/ipv6/exthdrs.c | 2 | ||||
-rw-r--r-- | net/ipv6/icmp.c | 5 | ||||
-rw-r--r-- | net/ipv6/ip6_output.c | 2 | ||||
-rw-r--r-- | net/ipv6/ipv6_sockglue.c | 3 | ||||
-rw-r--r-- | net/ipv6/ipv6_syms.c | 36 | ||||
-rw-r--r-- | net/ipv6/ndisc.c | 2 | ||||
-rw-r--r-- | net/ipv6/protocol.c | 4 | ||||
-rw-r--r-- | net/ipv6/route.c | 3 | ||||
-rw-r--r-- | net/ipv6/xfrm6_input.c | 4 | ||||
-rw-r--r-- | net/ipv6/xfrm6_output.c | 2 |
13 files changed, 49 insertions, 37 deletions
diff --git a/net/ipv6/Makefile b/net/ipv6/Makefile index d460017bb353..e9478688c3d3 100644 --- a/net/ipv6/Makefile +++ b/net/ipv6/Makefile | |||
@@ -8,7 +8,7 @@ ipv6-objs := af_inet6.o anycast.o ip6_output.o ip6_input.o addrconf.o \ | |||
8 | route.o ip6_fib.o ipv6_sockglue.o ndisc.o udp.o udplite.o \ | 8 | route.o ip6_fib.o ipv6_sockglue.o ndisc.o udp.o udplite.o \ |
9 | raw.o protocol.o icmp.o mcast.o reassembly.o tcp_ipv6.o \ | 9 | raw.o protocol.o icmp.o mcast.o reassembly.o tcp_ipv6.o \ |
10 | exthdrs.o sysctl_net_ipv6.o datagram.o proc.o \ | 10 | exthdrs.o sysctl_net_ipv6.o datagram.o proc.o \ |
11 | ip6_flowlabel.o ipv6_syms.o inet6_connection_sock.o | 11 | ip6_flowlabel.o inet6_connection_sock.o |
12 | 12 | ||
13 | ipv6-$(CONFIG_XFRM) += xfrm6_policy.o xfrm6_state.o xfrm6_input.o \ | 13 | ipv6-$(CONFIG_XFRM) += xfrm6_policy.o xfrm6_state.o xfrm6_input.o \ |
14 | xfrm6_output.o | 14 | xfrm6_output.o |
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c index 452a82ce4796..e035896657bc 100644 --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c | |||
@@ -271,6 +271,8 @@ void in6_dev_finish_destroy(struct inet6_dev *idev) | |||
271 | call_rcu(&idev->rcu, in6_dev_finish_destroy_rcu); | 271 | call_rcu(&idev->rcu, in6_dev_finish_destroy_rcu); |
272 | } | 272 | } |
273 | 273 | ||
274 | EXPORT_SYMBOL(in6_dev_finish_destroy); | ||
275 | |||
274 | static struct inet6_dev * ipv6_add_dev(struct net_device *dev) | 276 | static struct inet6_dev * ipv6_add_dev(struct net_device *dev) |
275 | { | 277 | { |
276 | struct inet6_dev *ndev; | 278 | struct inet6_dev *ndev; |
@@ -1107,6 +1109,7 @@ int ipv6_get_saddr(struct dst_entry *dst, | |||
1107 | return ipv6_dev_get_saddr(dst ? ip6_dst_idev(dst)->dev : NULL, daddr, saddr); | 1109 | return ipv6_dev_get_saddr(dst ? ip6_dst_idev(dst)->dev : NULL, daddr, saddr); |
1108 | } | 1110 | } |
1109 | 1111 | ||
1112 | EXPORT_SYMBOL(ipv6_get_saddr); | ||
1110 | 1113 | ||
1111 | int ipv6_get_lladdr(struct net_device *dev, struct in6_addr *addr) | 1114 | int ipv6_get_lladdr(struct net_device *dev, struct in6_addr *addr) |
1112 | { | 1115 | { |
@@ -1161,6 +1164,8 @@ int ipv6_chk_addr(struct in6_addr *addr, struct net_device *dev, int strict) | |||
1161 | return ifp != NULL; | 1164 | return ifp != NULL; |
1162 | } | 1165 | } |
1163 | 1166 | ||
1167 | EXPORT_SYMBOL(ipv6_chk_addr); | ||
1168 | |||
1164 | static | 1169 | static |
1165 | int ipv6_chk_same_addr(const struct in6_addr *addr, struct net_device *dev) | 1170 | int ipv6_chk_same_addr(const struct in6_addr *addr, struct net_device *dev) |
1166 | { | 1171 | { |
@@ -4021,11 +4026,15 @@ int register_inet6addr_notifier(struct notifier_block *nb) | |||
4021 | return atomic_notifier_chain_register(&inet6addr_chain, nb); | 4026 | return atomic_notifier_chain_register(&inet6addr_chain, nb); |
4022 | } | 4027 | } |
4023 | 4028 | ||
4029 | EXPORT_SYMBOL(register_inet6addr_notifier); | ||
4030 | |||
4024 | int unregister_inet6addr_notifier(struct notifier_block *nb) | 4031 | int unregister_inet6addr_notifier(struct notifier_block *nb) |
4025 | { | 4032 | { |
4026 | return atomic_notifier_chain_unregister(&inet6addr_chain,nb); | 4033 | return atomic_notifier_chain_unregister(&inet6addr_chain,nb); |
4027 | } | 4034 | } |
4028 | 4035 | ||
4036 | EXPORT_SYMBOL(unregister_inet6addr_notifier); | ||
4037 | |||
4029 | /* | 4038 | /* |
4030 | * Init / cleanup code | 4039 | * Init / cleanup code |
4031 | */ | 4040 | */ |
diff --git a/net/ipv6/af_inet6.c b/net/ipv6/af_inet6.c index 5cac14a5c778..fed3758181e1 100644 --- a/net/ipv6/af_inet6.c +++ b/net/ipv6/af_inet6.c | |||
@@ -349,6 +349,8 @@ out: | |||
349 | return err; | 349 | return err; |
350 | } | 350 | } |
351 | 351 | ||
352 | EXPORT_SYMBOL(inet6_bind); | ||
353 | |||
352 | int inet6_release(struct socket *sock) | 354 | int inet6_release(struct socket *sock) |
353 | { | 355 | { |
354 | struct sock *sk = sock->sk; | 356 | struct sock *sk = sock->sk; |
@@ -365,6 +367,8 @@ int inet6_release(struct socket *sock) | |||
365 | return inet_release(sock); | 367 | return inet_release(sock); |
366 | } | 368 | } |
367 | 369 | ||
370 | EXPORT_SYMBOL(inet6_release); | ||
371 | |||
368 | int inet6_destroy_sock(struct sock *sk) | 372 | int inet6_destroy_sock(struct sock *sk) |
369 | { | 373 | { |
370 | struct ipv6_pinfo *np = inet6_sk(sk); | 374 | struct ipv6_pinfo *np = inet6_sk(sk); |
@@ -428,6 +432,8 @@ int inet6_getname(struct socket *sock, struct sockaddr *uaddr, | |||
428 | return(0); | 432 | return(0); |
429 | } | 433 | } |
430 | 434 | ||
435 | EXPORT_SYMBOL(inet6_getname); | ||
436 | |||
431 | int inet6_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg) | 437 | int inet6_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg) |
432 | { | 438 | { |
433 | struct sock *sk = sock->sk; | 439 | struct sock *sk = sock->sk; |
@@ -457,6 +463,8 @@ int inet6_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg) | |||
457 | return(0); | 463 | return(0); |
458 | } | 464 | } |
459 | 465 | ||
466 | EXPORT_SYMBOL(inet6_ioctl); | ||
467 | |||
460 | const struct proto_ops inet6_stream_ops = { | 468 | const struct proto_ops inet6_stream_ops = { |
461 | .family = PF_INET6, | 469 | .family = PF_INET6, |
462 | .owner = THIS_MODULE, | 470 | .owner = THIS_MODULE, |
@@ -603,6 +611,8 @@ out_illegal: | |||
603 | goto out; | 611 | goto out; |
604 | } | 612 | } |
605 | 613 | ||
614 | EXPORT_SYMBOL(inet6_register_protosw); | ||
615 | |||
606 | void | 616 | void |
607 | inet6_unregister_protosw(struct inet_protosw *p) | 617 | inet6_unregister_protosw(struct inet_protosw *p) |
608 | { | 618 | { |
@@ -619,6 +629,8 @@ inet6_unregister_protosw(struct inet_protosw *p) | |||
619 | } | 629 | } |
620 | } | 630 | } |
621 | 631 | ||
632 | EXPORT_SYMBOL(inet6_unregister_protosw); | ||
633 | |||
622 | int inet6_sk_rebuild_header(struct sock *sk) | 634 | int inet6_sk_rebuild_header(struct sock *sk) |
623 | { | 635 | { |
624 | int err; | 636 | int err; |
diff --git a/net/ipv6/exthdrs.c b/net/ipv6/exthdrs.c index a963a31e5fb6..bcc4820baa78 100644 --- a/net/ipv6/exthdrs.c +++ b/net/ipv6/exthdrs.c | |||
@@ -810,6 +810,8 @@ void ipv6_push_nfrag_opts(struct sk_buff *skb, struct ipv6_txoptions *opt, | |||
810 | ipv6_push_exthdr(skb, proto, NEXTHDR_HOP, opt->hopopt); | 810 | ipv6_push_exthdr(skb, proto, NEXTHDR_HOP, opt->hopopt); |
811 | } | 811 | } |
812 | 812 | ||
813 | EXPORT_SYMBOL(ipv6_push_nfrag_opts); | ||
814 | |||
813 | void ipv6_push_frag_opts(struct sk_buff *skb, struct ipv6_txoptions *opt, u8 *proto) | 815 | void ipv6_push_frag_opts(struct sk_buff *skb, struct ipv6_txoptions *opt, u8 *proto) |
814 | { | 816 | { |
815 | if (opt->dst1opt) | 817 | if (opt->dst1opt) |
diff --git a/net/ipv6/icmp.c b/net/ipv6/icmp.c index edfe98bf64c3..a91dfbce8433 100644 --- a/net/ipv6/icmp.c +++ b/net/ipv6/icmp.c | |||
@@ -68,6 +68,7 @@ | |||
68 | #include <asm/system.h> | 68 | #include <asm/system.h> |
69 | 69 | ||
70 | DEFINE_SNMP_STAT(struct icmpv6_mib, icmpv6_statistics) __read_mostly; | 70 | DEFINE_SNMP_STAT(struct icmpv6_mib, icmpv6_statistics) __read_mostly; |
71 | EXPORT_SYMBOL(icmpv6_statistics); | ||
71 | 72 | ||
72 | /* | 73 | /* |
73 | * The ICMP socket(s). This is the most convenient way to flow control | 74 | * The ICMP socket(s). This is the most convenient way to flow control |
@@ -466,6 +467,8 @@ out: | |||
466 | icmpv6_xmit_unlock(); | 467 | icmpv6_xmit_unlock(); |
467 | } | 468 | } |
468 | 469 | ||
470 | EXPORT_SYMBOL(icmpv6_send); | ||
471 | |||
469 | static void icmpv6_echo_reply(struct sk_buff *skb) | 472 | static void icmpv6_echo_reply(struct sk_buff *skb) |
470 | { | 473 | { |
471 | struct sock *sk; | 474 | struct sock *sk; |
@@ -865,6 +868,8 @@ int icmpv6_err_convert(int type, int code, int *err) | |||
865 | return fatal; | 868 | return fatal; |
866 | } | 869 | } |
867 | 870 | ||
871 | EXPORT_SYMBOL(icmpv6_err_convert); | ||
872 | |||
868 | #ifdef CONFIG_SYSCTL | 873 | #ifdef CONFIG_SYSCTL |
869 | ctl_table ipv6_icmp_table[] = { | 874 | ctl_table ipv6_icmp_table[] = { |
870 | { | 875 | { |
diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c index 305516921aa8..0d60fbc59d8f 100644 --- a/net/ipv6/ip6_output.c +++ b/net/ipv6/ip6_output.c | |||
@@ -239,6 +239,8 @@ int ip6_xmit(struct sock *sk, struct sk_buff *skb, struct flowi *fl, | |||
239 | return -EMSGSIZE; | 239 | return -EMSGSIZE; |
240 | } | 240 | } |
241 | 241 | ||
242 | EXPORT_SYMBOL(ip6_xmit); | ||
243 | |||
242 | /* | 244 | /* |
243 | * To avoid extra problems ND packets are send through this | 245 | * To avoid extra problems ND packets are send through this |
244 | * routine. It's code duplication but I really want to avoid | 246 | * routine. It's code duplication but I really want to avoid |
diff --git a/net/ipv6/ipv6_sockglue.c b/net/ipv6/ipv6_sockglue.c index f5f9582a8d39..1cb7a084f0c0 100644 --- a/net/ipv6/ipv6_sockglue.c +++ b/net/ipv6/ipv6_sockglue.c | |||
@@ -761,6 +761,7 @@ int ipv6_setsockopt(struct sock *sk, int level, int optname, | |||
761 | return err; | 761 | return err; |
762 | } | 762 | } |
763 | 763 | ||
764 | EXPORT_SYMBOL(ipv6_setsockopt); | ||
764 | 765 | ||
765 | #ifdef CONFIG_COMPAT | 766 | #ifdef CONFIG_COMPAT |
766 | int compat_ipv6_setsockopt(struct sock *sk, int level, int optname, | 767 | int compat_ipv6_setsockopt(struct sock *sk, int level, int optname, |
@@ -1066,6 +1067,8 @@ int ipv6_getsockopt(struct sock *sk, int level, int optname, | |||
1066 | return err; | 1067 | return err; |
1067 | } | 1068 | } |
1068 | 1069 | ||
1070 | EXPORT_SYMBOL(ipv6_getsockopt); | ||
1071 | |||
1069 | #ifdef CONFIG_COMPAT | 1072 | #ifdef CONFIG_COMPAT |
1070 | int compat_ipv6_getsockopt(struct sock *sk, int level, int optname, | 1073 | int compat_ipv6_getsockopt(struct sock *sk, int level, int optname, |
1071 | char __user *optval, int __user *optlen) | 1074 | char __user *optval, int __user *optlen) |
diff --git a/net/ipv6/ipv6_syms.c b/net/ipv6/ipv6_syms.c deleted file mode 100644 index e12e3d4fccec..000000000000 --- a/net/ipv6/ipv6_syms.c +++ /dev/null | |||
@@ -1,36 +0,0 @@ | |||
1 | |||
2 | #include <linux/module.h> | ||
3 | #include <net/protocol.h> | ||
4 | #include <net/ipv6.h> | ||
5 | #include <net/addrconf.h> | ||
6 | #include <net/ip6_route.h> | ||
7 | #include <net/xfrm.h> | ||
8 | |||
9 | EXPORT_SYMBOL(icmpv6_send); | ||
10 | EXPORT_SYMBOL(icmpv6_statistics); | ||
11 | EXPORT_SYMBOL(icmpv6_err_convert); | ||
12 | EXPORT_SYMBOL(ndisc_mc_map); | ||
13 | EXPORT_SYMBOL(register_inet6addr_notifier); | ||
14 | EXPORT_SYMBOL(unregister_inet6addr_notifier); | ||
15 | EXPORT_SYMBOL(ip6_route_output); | ||
16 | EXPORT_SYMBOL(ipv6_setsockopt); | ||
17 | EXPORT_SYMBOL(ipv6_getsockopt); | ||
18 | EXPORT_SYMBOL(inet6_register_protosw); | ||
19 | EXPORT_SYMBOL(inet6_unregister_protosw); | ||
20 | EXPORT_SYMBOL(inet6_add_protocol); | ||
21 | EXPORT_SYMBOL(inet6_del_protocol); | ||
22 | EXPORT_SYMBOL(ip6_xmit); | ||
23 | EXPORT_SYMBOL(inet6_release); | ||
24 | EXPORT_SYMBOL(inet6_bind); | ||
25 | EXPORT_SYMBOL(inet6_getname); | ||
26 | EXPORT_SYMBOL(inet6_ioctl); | ||
27 | EXPORT_SYMBOL(ipv6_get_saddr); | ||
28 | EXPORT_SYMBOL(ipv6_chk_addr); | ||
29 | EXPORT_SYMBOL(in6_dev_finish_destroy); | ||
30 | #ifdef CONFIG_XFRM | ||
31 | EXPORT_SYMBOL(xfrm6_rcv); | ||
32 | EXPORT_SYMBOL(xfrm6_input_addr); | ||
33 | EXPORT_SYMBOL(xfrm6_find_1stfragopt); | ||
34 | #endif | ||
35 | EXPORT_SYMBOL(rt6_lookup); | ||
36 | EXPORT_SYMBOL(ipv6_push_nfrag_opts); | ||
diff --git a/net/ipv6/ndisc.c b/net/ipv6/ndisc.c index 121f31c283f8..886c5be14906 100644 --- a/net/ipv6/ndisc.c +++ b/net/ipv6/ndisc.c | |||
@@ -319,6 +319,8 @@ int ndisc_mc_map(struct in6_addr *addr, char *buf, struct net_device *dev, int d | |||
319 | return -EINVAL; | 319 | return -EINVAL; |
320 | } | 320 | } |
321 | 321 | ||
322 | EXPORT_SYMBOL(ndisc_mc_map); | ||
323 | |||
322 | static u32 ndisc_hash(const void *pkey, const struct net_device *dev) | 324 | static u32 ndisc_hash(const void *pkey, const struct net_device *dev) |
323 | { | 325 | { |
324 | const u32 *p32 = pkey; | 326 | const u32 *p32 = pkey; |
diff --git a/net/ipv6/protocol.c b/net/ipv6/protocol.c index ef43bd57baed..f929f47b925e 100644 --- a/net/ipv6/protocol.c +++ b/net/ipv6/protocol.c | |||
@@ -60,6 +60,8 @@ int inet6_add_protocol(struct inet6_protocol *prot, unsigned char protocol) | |||
60 | return ret; | 60 | return ret; |
61 | } | 61 | } |
62 | 62 | ||
63 | EXPORT_SYMBOL(inet6_add_protocol); | ||
64 | |||
63 | /* | 65 | /* |
64 | * Remove a protocol from the hash tables. | 66 | * Remove a protocol from the hash tables. |
65 | */ | 67 | */ |
@@ -83,3 +85,5 @@ int inet6_del_protocol(struct inet6_protocol *prot, unsigned char protocol) | |||
83 | 85 | ||
84 | return ret; | 86 | return ret; |
85 | } | 87 | } |
88 | |||
89 | EXPORT_SYMBOL(inet6_del_protocol); | ||
diff --git a/net/ipv6/route.c b/net/ipv6/route.c index aebb4e2d5ae3..cc08cc48e9e9 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c | |||
@@ -575,6 +575,8 @@ struct rt6_info *rt6_lookup(struct in6_addr *daddr, struct in6_addr *saddr, | |||
575 | return NULL; | 575 | return NULL; |
576 | } | 576 | } |
577 | 577 | ||
578 | EXPORT_SYMBOL(rt6_lookup); | ||
579 | |||
578 | /* ip6_ins_rt is called with FREE table->tb6_lock. | 580 | /* ip6_ins_rt is called with FREE table->tb6_lock. |
579 | It takes new route entry, the addition fails by any reason the | 581 | It takes new route entry, the addition fails by any reason the |
580 | route is freed. In any case, if caller does not hold it, it may | 582 | route is freed. In any case, if caller does not hold it, it may |
@@ -829,6 +831,7 @@ struct dst_entry * ip6_route_output(struct sock *sk, struct flowi *fl) | |||
829 | return fib6_rule_lookup(fl, flags, ip6_pol_route_output); | 831 | return fib6_rule_lookup(fl, flags, ip6_pol_route_output); |
830 | } | 832 | } |
831 | 833 | ||
834 | EXPORT_SYMBOL(ip6_route_output); | ||
832 | 835 | ||
833 | /* | 836 | /* |
834 | * Destination cache support functions | 837 | * Destination cache support functions |
diff --git a/net/ipv6/xfrm6_input.c b/net/ipv6/xfrm6_input.c index 31f651f95096..33a1b9200431 100644 --- a/net/ipv6/xfrm6_input.c +++ b/net/ipv6/xfrm6_input.c | |||
@@ -140,6 +140,8 @@ int xfrm6_rcv(struct sk_buff **pskb) | |||
140 | return xfrm6_rcv_spi(*pskb, 0); | 140 | return xfrm6_rcv_spi(*pskb, 0); |
141 | } | 141 | } |
142 | 142 | ||
143 | EXPORT_SYMBOL(xfrm6_rcv); | ||
144 | |||
143 | int xfrm6_input_addr(struct sk_buff *skb, xfrm_address_t *daddr, | 145 | int xfrm6_input_addr(struct sk_buff *skb, xfrm_address_t *daddr, |
144 | xfrm_address_t *saddr, u8 proto) | 146 | xfrm_address_t *saddr, u8 proto) |
145 | { | 147 | { |
@@ -247,3 +249,5 @@ drop: | |||
247 | xfrm_state_put(xfrm_vec_one); | 249 | xfrm_state_put(xfrm_vec_one); |
248 | return -1; | 250 | return -1; |
249 | } | 251 | } |
252 | |||
253 | EXPORT_SYMBOL(xfrm6_input_addr); | ||
diff --git a/net/ipv6/xfrm6_output.c b/net/ipv6/xfrm6_output.c index 8e4170f9a0da..c52e9d6c75ec 100644 --- a/net/ipv6/xfrm6_output.c +++ b/net/ipv6/xfrm6_output.c | |||
@@ -23,6 +23,8 @@ int xfrm6_find_1stfragopt(struct xfrm_state *x, struct sk_buff *skb, | |||
23 | return ip6_find_1stfragopt(skb, prevhdr); | 23 | return ip6_find_1stfragopt(skb, prevhdr); |
24 | } | 24 | } |
25 | 25 | ||
26 | EXPORT_SYMBOL(xfrm6_find_1stfragopt); | ||
27 | |||
26 | static int xfrm6_tunnel_check_size(struct sk_buff *skb) | 28 | static int xfrm6_tunnel_check_size(struct sk_buff *skb) |
27 | { | 29 | { |
28 | int mtu, ret = 0; | 30 | int mtu, ret = 0; |