aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/ipv6/Makefile2
-rw-r--r--net/ipv6/addrconf.c9
-rw-r--r--net/ipv6/af_inet6.c12
-rw-r--r--net/ipv6/exthdrs.c2
-rw-r--r--net/ipv6/icmp.c5
-rw-r--r--net/ipv6/ip6_output.c2
-rw-r--r--net/ipv6/ipv6_sockglue.c3
-rw-r--r--net/ipv6/ipv6_syms.c36
-rw-r--r--net/ipv6/ndisc.c2
-rw-r--r--net/ipv6/protocol.c4
-rw-r--r--net/ipv6/route.c3
-rw-r--r--net/ipv6/xfrm6_input.c4
-rw-r--r--net/ipv6/xfrm6_output.c2
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
13ipv6-$(CONFIG_XFRM) += xfrm6_policy.o xfrm6_state.o xfrm6_input.o \ 13ipv6-$(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
274EXPORT_SYMBOL(in6_dev_finish_destroy);
275
274static struct inet6_dev * ipv6_add_dev(struct net_device *dev) 276static 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
1112EXPORT_SYMBOL(ipv6_get_saddr);
1110 1113
1111int ipv6_get_lladdr(struct net_device *dev, struct in6_addr *addr) 1114int 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
1167EXPORT_SYMBOL(ipv6_chk_addr);
1168
1164static 1169static
1165int ipv6_chk_same_addr(const struct in6_addr *addr, struct net_device *dev) 1170int 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
4029EXPORT_SYMBOL(register_inet6addr_notifier);
4030
4024int unregister_inet6addr_notifier(struct notifier_block *nb) 4031int 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
4036EXPORT_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
352EXPORT_SYMBOL(inet6_bind);
353
352int inet6_release(struct socket *sock) 354int 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
370EXPORT_SYMBOL(inet6_release);
371
368int inet6_destroy_sock(struct sock *sk) 372int 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
435EXPORT_SYMBOL(inet6_getname);
436
431int inet6_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg) 437int 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
466EXPORT_SYMBOL(inet6_ioctl);
467
460const struct proto_ops inet6_stream_ops = { 468const 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
614EXPORT_SYMBOL(inet6_register_protosw);
615
606void 616void
607inet6_unregister_protosw(struct inet_protosw *p) 617inet6_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
632EXPORT_SYMBOL(inet6_unregister_protosw);
633
622int inet6_sk_rebuild_header(struct sock *sk) 634int 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
813EXPORT_SYMBOL(ipv6_push_nfrag_opts);
814
813void ipv6_push_frag_opts(struct sk_buff *skb, struct ipv6_txoptions *opt, u8 *proto) 815void 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
70DEFINE_SNMP_STAT(struct icmpv6_mib, icmpv6_statistics) __read_mostly; 70DEFINE_SNMP_STAT(struct icmpv6_mib, icmpv6_statistics) __read_mostly;
71EXPORT_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
470EXPORT_SYMBOL(icmpv6_send);
471
469static void icmpv6_echo_reply(struct sk_buff *skb) 472static 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
871EXPORT_SYMBOL(icmpv6_err_convert);
872
868#ifdef CONFIG_SYSCTL 873#ifdef CONFIG_SYSCTL
869ctl_table ipv6_icmp_table[] = { 874ctl_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
242EXPORT_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
764EXPORT_SYMBOL(ipv6_setsockopt);
764 765
765#ifdef CONFIG_COMPAT 766#ifdef CONFIG_COMPAT
766int compat_ipv6_setsockopt(struct sock *sk, int level, int optname, 767int 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
1070EXPORT_SYMBOL(ipv6_getsockopt);
1071
1069#ifdef CONFIG_COMPAT 1072#ifdef CONFIG_COMPAT
1070int compat_ipv6_getsockopt(struct sock *sk, int level, int optname, 1073int 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
9EXPORT_SYMBOL(icmpv6_send);
10EXPORT_SYMBOL(icmpv6_statistics);
11EXPORT_SYMBOL(icmpv6_err_convert);
12EXPORT_SYMBOL(ndisc_mc_map);
13EXPORT_SYMBOL(register_inet6addr_notifier);
14EXPORT_SYMBOL(unregister_inet6addr_notifier);
15EXPORT_SYMBOL(ip6_route_output);
16EXPORT_SYMBOL(ipv6_setsockopt);
17EXPORT_SYMBOL(ipv6_getsockopt);
18EXPORT_SYMBOL(inet6_register_protosw);
19EXPORT_SYMBOL(inet6_unregister_protosw);
20EXPORT_SYMBOL(inet6_add_protocol);
21EXPORT_SYMBOL(inet6_del_protocol);
22EXPORT_SYMBOL(ip6_xmit);
23EXPORT_SYMBOL(inet6_release);
24EXPORT_SYMBOL(inet6_bind);
25EXPORT_SYMBOL(inet6_getname);
26EXPORT_SYMBOL(inet6_ioctl);
27EXPORT_SYMBOL(ipv6_get_saddr);
28EXPORT_SYMBOL(ipv6_chk_addr);
29EXPORT_SYMBOL(in6_dev_finish_destroy);
30#ifdef CONFIG_XFRM
31EXPORT_SYMBOL(xfrm6_rcv);
32EXPORT_SYMBOL(xfrm6_input_addr);
33EXPORT_SYMBOL(xfrm6_find_1stfragopt);
34#endif
35EXPORT_SYMBOL(rt6_lookup);
36EXPORT_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
322EXPORT_SYMBOL(ndisc_mc_map);
323
322static u32 ndisc_hash(const void *pkey, const struct net_device *dev) 324static 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
63EXPORT_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
89EXPORT_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
578EXPORT_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
834EXPORT_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
143EXPORT_SYMBOL(xfrm6_rcv);
144
143int xfrm6_input_addr(struct sk_buff *skb, xfrm_address_t *daddr, 145int 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
253EXPORT_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
26EXPORT_SYMBOL(xfrm6_find_1stfragopt);
27
26static int xfrm6_tunnel_check_size(struct sk_buff *skb) 28static int xfrm6_tunnel_check_size(struct sk_buff *skb)
27{ 29{
28 int mtu, ret = 0; 30 int mtu, ret = 0;