diff options
| -rw-r--r-- | net/ipv4/arp.c | 18 | ||||
| -rw-r--r-- | net/ipv4/datagram.c | 2 | ||||
| -rw-r--r-- | net/ipv4/fib_frontend.c | 7 | ||||
| -rw-r--r-- | net/ipv4/icmp.c | 7 | ||||
| -rw-r--r-- | net/ipv4/igmp.c | 9 | ||||
| -rw-r--r-- | net/ipv4/inet_connection_sock.c | 19 | ||||
| -rw-r--r-- | net/ipv4/inet_fragment.c | 1 | ||||
| -rw-r--r-- | net/ipv4/inet_hashtables.c | 4 | ||||
| -rw-r--r-- | net/ipv4/ip_fragment.c | 3 | ||||
| -rw-r--r-- | net/ipv4/ip_output.c | 9 | ||||
| -rw-r--r-- | net/ipv4/netfilter/ipt_REJECT.c | 2 | ||||
| -rw-r--r-- | net/ipv4/protocol.c | 3 | ||||
| -rw-r--r-- | net/ipv4/route.c | 7 | ||||
| -rw-r--r-- | net/ipv4/tcp.c | 35 | ||||
| -rw-r--r-- | net/ipv4/tcp_input.c | 18 | ||||
| -rw-r--r-- | net/ipv4/tcp_ipv4.c | 35 | ||||
| -rw-r--r-- | net/ipv4/tcp_minisocks.c | 9 | ||||
| -rw-r--r-- | net/ipv4/tcp_output.c | 12 | ||||
| -rw-r--r-- | net/ipv4/tcp_timer.c | 1 | ||||
| -rw-r--r-- | net/ipv4/tunnel4.c | 2 | ||||
| -rw-r--r-- | net/ipv4/udplite.c | 3 | ||||
| -rw-r--r-- | net/ipv4/xfrm4_input.c | 1 |
22 files changed, 67 insertions, 140 deletions
diff --git a/net/ipv4/arp.c b/net/ipv4/arp.c index 09ead1baa99e..96c1955b3e2f 100644 --- a/net/ipv4/arp.c +++ b/net/ipv4/arp.c | |||
| @@ -116,6 +116,7 @@ | |||
| 116 | #if defined(CONFIG_ATM_CLIP) || defined(CONFIG_ATM_CLIP_MODULE) | 116 | #if defined(CONFIG_ATM_CLIP) || defined(CONFIG_ATM_CLIP_MODULE) |
| 117 | #include <net/atmclip.h> | 117 | #include <net/atmclip.h> |
| 118 | struct neigh_table *clip_tbl_hook; | 118 | struct neigh_table *clip_tbl_hook; |
| 119 | EXPORT_SYMBOL(clip_tbl_hook); | ||
| 119 | #endif | 120 | #endif |
| 120 | 121 | ||
| 121 | #include <asm/system.h> | 122 | #include <asm/system.h> |
| @@ -169,6 +170,7 @@ const struct neigh_ops arp_broken_ops = { | |||
| 169 | .hh_output = dev_queue_xmit, | 170 | .hh_output = dev_queue_xmit, |
| 170 | .queue_xmit = dev_queue_xmit, | 171 | .queue_xmit = dev_queue_xmit, |
| 171 | }; | 172 | }; |
| 173 | EXPORT_SYMBOL(arp_broken_ops); | ||
| 172 | 174 | ||
| 173 | struct neigh_table arp_tbl = { | 175 | struct neigh_table arp_tbl = { |
| 174 | .family = AF_INET, | 176 | .family = AF_INET, |
| @@ -198,6 +200,7 @@ struct neigh_table arp_tbl = { | |||
| 198 | .gc_thresh2 = 512, | 200 | .gc_thresh2 = 512, |
| 199 | .gc_thresh3 = 1024, | 201 | .gc_thresh3 = 1024, |
| 200 | }; | 202 | }; |
| 203 | EXPORT_SYMBOL(arp_tbl); | ||
| 201 | 204 | ||
| 202 | int arp_mc_map(__be32 addr, u8 *haddr, struct net_device *dev, int dir) | 205 | int arp_mc_map(__be32 addr, u8 *haddr, struct net_device *dev, int dir) |
| 203 | { | 206 | { |
| @@ -499,6 +502,7 @@ int arp_find(unsigned char *haddr, struct sk_buff *skb) | |||
| 499 | kfree_skb(skb); | 502 | kfree_skb(skb); |
| 500 | return 1; | 503 | return 1; |
| 501 | } | 504 | } |
| 505 | EXPORT_SYMBOL(arp_find); | ||
| 502 | 506 | ||
| 503 | /* END OF OBSOLETE FUNCTIONS */ | 507 | /* END OF OBSOLETE FUNCTIONS */ |
| 504 | 508 | ||
| @@ -700,6 +704,7 @@ out: | |||
| 700 | kfree_skb(skb); | 704 | kfree_skb(skb); |
| 701 | return NULL; | 705 | return NULL; |
| 702 | } | 706 | } |
| 707 | EXPORT_SYMBOL(arp_create); | ||
| 703 | 708 | ||
| 704 | /* | 709 | /* |
| 705 | * Send an arp packet. | 710 | * Send an arp packet. |
| @@ -709,6 +714,7 @@ void arp_xmit(struct sk_buff *skb) | |||
| 709 | /* Send it off, maybe filter it using firewalling first. */ | 714 | /* Send it off, maybe filter it using firewalling first. */ |
| 710 | NF_HOOK(NFPROTO_ARP, NF_ARP_OUT, skb, NULL, skb->dev, dev_queue_xmit); | 715 | NF_HOOK(NFPROTO_ARP, NF_ARP_OUT, skb, NULL, skb->dev, dev_queue_xmit); |
| 711 | } | 716 | } |
| 717 | EXPORT_SYMBOL(arp_xmit); | ||
| 712 | 718 | ||
| 713 | /* | 719 | /* |
| 714 | * Create and send an arp packet. | 720 | * Create and send an arp packet. |
| @@ -735,6 +741,7 @@ void arp_send(int type, int ptype, __be32 dest_ip, | |||
| 735 | 741 | ||
| 736 | arp_xmit(skb); | 742 | arp_xmit(skb); |
| 737 | } | 743 | } |
| 744 | EXPORT_SYMBOL(arp_send); | ||
| 738 | 745 | ||
| 739 | /* | 746 | /* |
| 740 | * Process an arp request. | 747 | * Process an arp request. |
| @@ -1452,14 +1459,3 @@ static int __init arp_proc_init(void) | |||
| 1452 | } | 1459 | } |
| 1453 | 1460 | ||
| 1454 | #endif /* CONFIG_PROC_FS */ | 1461 | #endif /* CONFIG_PROC_FS */ |
| 1455 | |||
| 1456 | EXPORT_SYMBOL(arp_broken_ops); | ||
| 1457 | EXPORT_SYMBOL(arp_find); | ||
| 1458 | EXPORT_SYMBOL(arp_create); | ||
| 1459 | EXPORT_SYMBOL(arp_xmit); | ||
| 1460 | EXPORT_SYMBOL(arp_send); | ||
| 1461 | EXPORT_SYMBOL(arp_tbl); | ||
| 1462 | |||
| 1463 | #if defined(CONFIG_ATM_CLIP) || defined(CONFIG_ATM_CLIP_MODULE) | ||
| 1464 | EXPORT_SYMBOL(clip_tbl_hook); | ||
| 1465 | #endif | ||
diff --git a/net/ipv4/datagram.c b/net/ipv4/datagram.c index fe3daa7f07a9..f0550941df7b 100644 --- a/net/ipv4/datagram.c +++ b/net/ipv4/datagram.c | |||
| @@ -72,6 +72,4 @@ int ip4_datagram_connect(struct sock *sk, struct sockaddr *uaddr, int addr_len) | |||
| 72 | sk_dst_set(sk, &rt->dst); | 72 | sk_dst_set(sk, &rt->dst); |
| 73 | return(0); | 73 | return(0); |
| 74 | } | 74 | } |
| 75 | |||
| 76 | EXPORT_SYMBOL(ip4_datagram_connect); | 75 | EXPORT_SYMBOL(ip4_datagram_connect); |
| 77 | |||
diff --git a/net/ipv4/fib_frontend.c b/net/ipv4/fib_frontend.c index e830f7a123bd..a43968918350 100644 --- a/net/ipv4/fib_frontend.c +++ b/net/ipv4/fib_frontend.c | |||
| @@ -175,6 +175,7 @@ out: | |||
| 175 | fib_res_put(&res); | 175 | fib_res_put(&res); |
| 176 | return dev; | 176 | return dev; |
| 177 | } | 177 | } |
| 178 | EXPORT_SYMBOL(ip_dev_find); | ||
| 178 | 179 | ||
| 179 | /* | 180 | /* |
| 180 | * Find address type as if only "dev" was present in the system. If | 181 | * Find address type as if only "dev" was present in the system. If |
| @@ -214,12 +215,14 @@ unsigned int inet_addr_type(struct net *net, __be32 addr) | |||
| 214 | { | 215 | { |
| 215 | return __inet_dev_addr_type(net, NULL, addr); | 216 | return __inet_dev_addr_type(net, NULL, addr); |
| 216 | } | 217 | } |
| 218 | EXPORT_SYMBOL(inet_addr_type); | ||
| 217 | 219 | ||
| 218 | unsigned int inet_dev_addr_type(struct net *net, const struct net_device *dev, | 220 | unsigned int inet_dev_addr_type(struct net *net, const struct net_device *dev, |
| 219 | __be32 addr) | 221 | __be32 addr) |
| 220 | { | 222 | { |
| 221 | return __inet_dev_addr_type(net, dev, addr); | 223 | return __inet_dev_addr_type(net, dev, addr); |
| 222 | } | 224 | } |
| 225 | EXPORT_SYMBOL(inet_dev_addr_type); | ||
| 223 | 226 | ||
| 224 | /* Given (packet source, input interface) and optional (dst, oif, tos): | 227 | /* Given (packet source, input interface) and optional (dst, oif, tos): |
| 225 | - (main) check, that source is valid i.e. not broadcast or our local | 228 | - (main) check, that source is valid i.e. not broadcast or our local |
| @@ -1077,7 +1080,3 @@ void __init ip_fib_init(void) | |||
| 1077 | 1080 | ||
| 1078 | fib_hash_init(); | 1081 | fib_hash_init(); |
| 1079 | } | 1082 | } |
| 1080 | |||
| 1081 | EXPORT_SYMBOL(inet_addr_type); | ||
| 1082 | EXPORT_SYMBOL(inet_dev_addr_type); | ||
| 1083 | EXPORT_SYMBOL(ip_dev_find); | ||
diff --git a/net/ipv4/icmp.c b/net/ipv4/icmp.c index 7569b21a3a2d..a0d847c7cba5 100644 --- a/net/ipv4/icmp.c +++ b/net/ipv4/icmp.c | |||
| @@ -181,6 +181,7 @@ const struct icmp_err icmp_err_convert[] = { | |||
| 181 | .fatal = 1, | 181 | .fatal = 1, |
| 182 | }, | 182 | }, |
| 183 | }; | 183 | }; |
| 184 | EXPORT_SYMBOL(icmp_err_convert); | ||
| 184 | 185 | ||
| 185 | /* | 186 | /* |
| 186 | * ICMP control array. This specifies what to do with each ICMP. | 187 | * ICMP control array. This specifies what to do with each ICMP. |
| @@ -267,6 +268,7 @@ int xrlim_allow(struct dst_entry *dst, int timeout) | |||
| 267 | dst->rate_tokens = token; | 268 | dst->rate_tokens = token; |
| 268 | return rc; | 269 | return rc; |
| 269 | } | 270 | } |
| 271 | EXPORT_SYMBOL(xrlim_allow); | ||
| 270 | 272 | ||
| 271 | static inline int icmpv4_xrlim_allow(struct net *net, struct rtable *rt, | 273 | static inline int icmpv4_xrlim_allow(struct net *net, struct rtable *rt, |
| 272 | int type, int code) | 274 | int type, int code) |
| @@ -647,6 +649,7 @@ out_unlock: | |||
| 647 | icmp_xmit_unlock(sk); | 649 | icmp_xmit_unlock(sk); |
| 648 | out:; | 650 | out:; |
| 649 | } | 651 | } |
| 652 | EXPORT_SYMBOL(icmp_send); | ||
| 650 | 653 | ||
| 651 | 654 | ||
| 652 | /* | 655 | /* |
| @@ -1214,7 +1217,3 @@ int __init icmp_init(void) | |||
| 1214 | { | 1217 | { |
| 1215 | return register_pernet_subsys(&icmp_sk_ops); | 1218 | return register_pernet_subsys(&icmp_sk_ops); |
| 1216 | } | 1219 | } |
| 1217 | |||
| 1218 | EXPORT_SYMBOL(icmp_err_convert); | ||
| 1219 | EXPORT_SYMBOL(icmp_send); | ||
| 1220 | EXPORT_SYMBOL(xrlim_allow); | ||
diff --git a/net/ipv4/igmp.c b/net/ipv4/igmp.c index b5580d422994..a1ad0e7180d2 100644 --- a/net/ipv4/igmp.c +++ b/net/ipv4/igmp.c | |||
| @@ -1244,6 +1244,7 @@ void ip_mc_inc_group(struct in_device *in_dev, __be32 addr) | |||
| 1244 | out: | 1244 | out: |
| 1245 | return; | 1245 | return; |
| 1246 | } | 1246 | } |
| 1247 | EXPORT_SYMBOL(ip_mc_inc_group); | ||
| 1247 | 1248 | ||
| 1248 | /* | 1249 | /* |
| 1249 | * Resend IGMP JOIN report; used for bonding. | 1250 | * Resend IGMP JOIN report; used for bonding. |
| @@ -1266,6 +1267,7 @@ void ip_mc_rejoin_group(struct ip_mc_list *im) | |||
| 1266 | igmp_ifc_event(in_dev); | 1267 | igmp_ifc_event(in_dev); |
| 1267 | #endif | 1268 | #endif |
| 1268 | } | 1269 | } |
| 1270 | EXPORT_SYMBOL(ip_mc_rejoin_group); | ||
| 1269 | 1271 | ||
| 1270 | /* | 1272 | /* |
| 1271 | * A socket has left a multicast group on device dev | 1273 | * A socket has left a multicast group on device dev |
| @@ -1296,6 +1298,7 @@ void ip_mc_dec_group(struct in_device *in_dev, __be32 addr) | |||
| 1296 | } | 1298 | } |
| 1297 | } | 1299 | } |
| 1298 | } | 1300 | } |
| 1301 | EXPORT_SYMBOL(ip_mc_dec_group); | ||
| 1299 | 1302 | ||
| 1300 | /* Device changing type */ | 1303 | /* Device changing type */ |
| 1301 | 1304 | ||
| @@ -1804,6 +1807,7 @@ done: | |||
| 1804 | rtnl_unlock(); | 1807 | rtnl_unlock(); |
| 1805 | return err; | 1808 | return err; |
| 1806 | } | 1809 | } |
| 1810 | EXPORT_SYMBOL(ip_mc_join_group); | ||
| 1807 | 1811 | ||
| 1808 | static void ip_sf_socklist_reclaim(struct rcu_head *rp) | 1812 | static void ip_sf_socklist_reclaim(struct rcu_head *rp) |
| 1809 | { | 1813 | { |
| @@ -2676,8 +2680,3 @@ int __init igmp_mc_proc_init(void) | |||
| 2676 | return register_pernet_subsys(&igmp_net_ops); | 2680 | return register_pernet_subsys(&igmp_net_ops); |
| 2677 | } | 2681 | } |
| 2678 | #endif | 2682 | #endif |
| 2679 | |||
| 2680 | EXPORT_SYMBOL(ip_mc_dec_group); | ||
| 2681 | EXPORT_SYMBOL(ip_mc_inc_group); | ||
| 2682 | EXPORT_SYMBOL(ip_mc_join_group); | ||
| 2683 | EXPORT_SYMBOL(ip_mc_rejoin_group); | ||
diff --git a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c index 57c9e4d7b805..7174370b1195 100644 --- a/net/ipv4/inet_connection_sock.c +++ b/net/ipv4/inet_connection_sock.c | |||
| @@ -84,7 +84,6 @@ int inet_csk_bind_conflict(const struct sock *sk, | |||
| 84 | } | 84 | } |
| 85 | return node != NULL; | 85 | return node != NULL; |
| 86 | } | 86 | } |
| 87 | |||
| 88 | EXPORT_SYMBOL_GPL(inet_csk_bind_conflict); | 87 | EXPORT_SYMBOL_GPL(inet_csk_bind_conflict); |
| 89 | 88 | ||
| 90 | /* Obtain a reference to a local port for the given sock, | 89 | /* Obtain a reference to a local port for the given sock, |
| @@ -212,7 +211,6 @@ fail: | |||
| 212 | local_bh_enable(); | 211 | local_bh_enable(); |
| 213 | return ret; | 212 | return ret; |
| 214 | } | 213 | } |
| 215 | |||
| 216 | EXPORT_SYMBOL_GPL(inet_csk_get_port); | 214 | EXPORT_SYMBOL_GPL(inet_csk_get_port); |
| 217 | 215 | ||
| 218 | /* | 216 | /* |
| @@ -305,7 +303,6 @@ out_err: | |||
| 305 | *err = error; | 303 | *err = error; |
| 306 | goto out; | 304 | goto out; |
| 307 | } | 305 | } |
| 308 | |||
| 309 | EXPORT_SYMBOL(inet_csk_accept); | 306 | EXPORT_SYMBOL(inet_csk_accept); |
| 310 | 307 | ||
| 311 | /* | 308 | /* |
| @@ -327,7 +324,6 @@ void inet_csk_init_xmit_timers(struct sock *sk, | |||
| 327 | setup_timer(&sk->sk_timer, keepalive_handler, (unsigned long)sk); | 324 | setup_timer(&sk->sk_timer, keepalive_handler, (unsigned long)sk); |
| 328 | icsk->icsk_pending = icsk->icsk_ack.pending = 0; | 325 | icsk->icsk_pending = icsk->icsk_ack.pending = 0; |
| 329 | } | 326 | } |
| 330 | |||
| 331 | EXPORT_SYMBOL(inet_csk_init_xmit_timers); | 327 | EXPORT_SYMBOL(inet_csk_init_xmit_timers); |
| 332 | 328 | ||
| 333 | void inet_csk_clear_xmit_timers(struct sock *sk) | 329 | void inet_csk_clear_xmit_timers(struct sock *sk) |
| @@ -340,21 +336,18 @@ void inet_csk_clear_xmit_timers(struct sock *sk) | |||
| 340 | sk_stop_timer(sk, &icsk->icsk_delack_timer); | 336 | sk_stop_timer(sk, &icsk->icsk_delack_timer); |
| 341 | sk_stop_timer(sk, &sk->sk_timer); | 337 | sk_stop_timer(sk, &sk->sk_timer); |
| 342 | } | 338 | } |
| 343 | |||
| 344 | EXPORT_SYMBOL(inet_csk_clear_xmit_timers); | 339 | EXPORT_SYMBOL(inet_csk_clear_xmit_timers); |
| 345 | 340 | ||
| 346 | void inet_csk_delete_keepalive_timer(struct sock *sk) | 341 | void inet_csk_delete_keepalive_timer(struct sock *sk) |
| 347 | { | 342 | { |
| 348 | sk_stop_timer(sk, &sk->sk_timer); | 343 | sk_stop_timer(sk, &sk->sk_timer); |
| 349 | } | 344 | } |
| 350 | |||
| 351 | EXPORT_SYMBOL(inet_csk_delete_keepalive_timer); | 345 | EXPORT_SYMBOL(inet_csk_delete_keepalive_timer); |
| 352 | 346 | ||
| 353 | void inet_csk_reset_keepalive_timer(struct sock *sk, unsigned long len) | 347 | void inet_csk_reset_keepalive_timer(struct sock *sk, unsigned long len) |
| 354 | { | 348 | { |
| 355 | sk_reset_timer(sk, &sk->sk_timer, jiffies + len); | 349 | sk_reset_timer(sk, &sk->sk_timer, jiffies + len); |
| 356 | } | 350 | } |
| 357 | |||
| 358 | EXPORT_SYMBOL(inet_csk_reset_keepalive_timer); | 351 | EXPORT_SYMBOL(inet_csk_reset_keepalive_timer); |
| 359 | 352 | ||
| 360 | struct dst_entry *inet_csk_route_req(struct sock *sk, | 353 | struct dst_entry *inet_csk_route_req(struct sock *sk, |
| @@ -391,7 +384,6 @@ no_route: | |||
| 391 | IP_INC_STATS_BH(net, IPSTATS_MIB_OUTNOROUTES); | 384 | IP_INC_STATS_BH(net, IPSTATS_MIB_OUTNOROUTES); |
| 392 | return NULL; | 385 | return NULL; |
| 393 | } | 386 | } |
| 394 | |||
| 395 | EXPORT_SYMBOL_GPL(inet_csk_route_req); | 387 | EXPORT_SYMBOL_GPL(inet_csk_route_req); |
| 396 | 388 | ||
| 397 | static inline u32 inet_synq_hash(const __be32 raddr, const __be16 rport, | 389 | static inline u32 inet_synq_hash(const __be32 raddr, const __be16 rport, |
| @@ -433,7 +425,6 @@ struct request_sock *inet_csk_search_req(const struct sock *sk, | |||
| 433 | 425 | ||
| 434 | return req; | 426 | return req; |
| 435 | } | 427 | } |
| 436 | |||
| 437 | EXPORT_SYMBOL_GPL(inet_csk_search_req); | 428 | EXPORT_SYMBOL_GPL(inet_csk_search_req); |
| 438 | 429 | ||
| 439 | void inet_csk_reqsk_queue_hash_add(struct sock *sk, struct request_sock *req, | 430 | void inet_csk_reqsk_queue_hash_add(struct sock *sk, struct request_sock *req, |
| @@ -447,11 +438,11 @@ void inet_csk_reqsk_queue_hash_add(struct sock *sk, struct request_sock *req, | |||
| 447 | reqsk_queue_hash_req(&icsk->icsk_accept_queue, h, req, timeout); | 438 | reqsk_queue_hash_req(&icsk->icsk_accept_queue, h, req, timeout); |
| 448 | inet_csk_reqsk_queue_added(sk, timeout); | 439 | inet_csk_reqsk_queue_added(sk, timeout); |
| 449 | } | 440 | } |
| 441 | EXPORT_SYMBOL_GPL(inet_csk_reqsk_queue_hash_add); | ||
| 450 | 442 | ||
| 451 | /* Only thing we need from tcp.h */ | 443 | /* Only thing we need from tcp.h */ |
| 452 | extern int sysctl_tcp_synack_retries; | 444 | extern int sysctl_tcp_synack_retries; |
| 453 | 445 | ||
| 454 | EXPORT_SYMBOL_GPL(inet_csk_reqsk_queue_hash_add); | ||
| 455 | 446 | ||
| 456 | /* Decide when to expire the request and when to resend SYN-ACK */ | 447 | /* Decide when to expire the request and when to resend SYN-ACK */ |
| 457 | static inline void syn_ack_recalc(struct request_sock *req, const int thresh, | 448 | static inline void syn_ack_recalc(struct request_sock *req, const int thresh, |
| @@ -569,7 +560,6 @@ void inet_csk_reqsk_queue_prune(struct sock *parent, | |||
| 569 | if (lopt->qlen) | 560 | if (lopt->qlen) |
| 570 | inet_csk_reset_keepalive_timer(parent, interval); | 561 | inet_csk_reset_keepalive_timer(parent, interval); |
| 571 | } | 562 | } |
| 572 | |||
| 573 | EXPORT_SYMBOL_GPL(inet_csk_reqsk_queue_prune); | 563 | EXPORT_SYMBOL_GPL(inet_csk_reqsk_queue_prune); |
| 574 | 564 | ||
| 575 | struct sock *inet_csk_clone(struct sock *sk, const struct request_sock *req, | 565 | struct sock *inet_csk_clone(struct sock *sk, const struct request_sock *req, |
| @@ -599,7 +589,6 @@ struct sock *inet_csk_clone(struct sock *sk, const struct request_sock *req, | |||
| 599 | } | 589 | } |
| 600 | return newsk; | 590 | return newsk; |
| 601 | } | 591 | } |
| 602 | |||
| 603 | EXPORT_SYMBOL_GPL(inet_csk_clone); | 592 | EXPORT_SYMBOL_GPL(inet_csk_clone); |
| 604 | 593 | ||
| 605 | /* | 594 | /* |
| @@ -630,7 +619,6 @@ void inet_csk_destroy_sock(struct sock *sk) | |||
| 630 | percpu_counter_dec(sk->sk_prot->orphan_count); | 619 | percpu_counter_dec(sk->sk_prot->orphan_count); |
| 631 | sock_put(sk); | 620 | sock_put(sk); |
| 632 | } | 621 | } |
| 633 | |||
| 634 | EXPORT_SYMBOL(inet_csk_destroy_sock); | 622 | EXPORT_SYMBOL(inet_csk_destroy_sock); |
| 635 | 623 | ||
| 636 | int inet_csk_listen_start(struct sock *sk, const int nr_table_entries) | 624 | int inet_csk_listen_start(struct sock *sk, const int nr_table_entries) |
| @@ -665,7 +653,6 @@ int inet_csk_listen_start(struct sock *sk, const int nr_table_entries) | |||
| 665 | __reqsk_queue_destroy(&icsk->icsk_accept_queue); | 653 | __reqsk_queue_destroy(&icsk->icsk_accept_queue); |
| 666 | return -EADDRINUSE; | 654 | return -EADDRINUSE; |
| 667 | } | 655 | } |
| 668 | |||
| 669 | EXPORT_SYMBOL_GPL(inet_csk_listen_start); | 656 | EXPORT_SYMBOL_GPL(inet_csk_listen_start); |
| 670 | 657 | ||
| 671 | /* | 658 | /* |
| @@ -720,7 +707,6 @@ void inet_csk_listen_stop(struct sock *sk) | |||
| 720 | } | 707 | } |
| 721 | WARN_ON(sk->sk_ack_backlog); | 708 | WARN_ON(sk->sk_ack_backlog); |
| 722 | } | 709 | } |
| 723 | |||
| 724 | EXPORT_SYMBOL_GPL(inet_csk_listen_stop); | 710 | EXPORT_SYMBOL_GPL(inet_csk_listen_stop); |
| 725 | 711 | ||
| 726 | void inet_csk_addr2sockaddr(struct sock *sk, struct sockaddr *uaddr) | 712 | void inet_csk_addr2sockaddr(struct sock *sk, struct sockaddr *uaddr) |
| @@ -732,7 +718,6 @@ void inet_csk_addr2sockaddr(struct sock *sk, struct sockaddr *uaddr) | |||
| 732 | sin->sin_addr.s_addr = inet->inet_daddr; | 718 | sin->sin_addr.s_addr = inet->inet_daddr; |
| 733 | sin->sin_port = inet->inet_dport; | 719 | sin->sin_port = inet->inet_dport; |
| 734 | } | 720 | } |
| 735 | |||
| 736 | EXPORT_SYMBOL_GPL(inet_csk_addr2sockaddr); | 721 | EXPORT_SYMBOL_GPL(inet_csk_addr2sockaddr); |
| 737 | 722 | ||
| 738 | #ifdef CONFIG_COMPAT | 723 | #ifdef CONFIG_COMPAT |
| @@ -747,7 +732,6 @@ int inet_csk_compat_getsockopt(struct sock *sk, int level, int optname, | |||
| 747 | return icsk->icsk_af_ops->getsockopt(sk, level, optname, | 732 | return icsk->icsk_af_ops->getsockopt(sk, level, optname, |
| 748 | optval, optlen); | 733 | optval, optlen); |
| 749 | } | 734 | } |
| 750 | |||
| 751 | EXPORT_SYMBOL_GPL(inet_csk_compat_getsockopt); | 735 | EXPORT_SYMBOL_GPL(inet_csk_compat_getsockopt); |
| 752 | 736 | ||
| 753 | int inet_csk_compat_setsockopt(struct sock *sk, int level, int optname, | 737 | int inet_csk_compat_setsockopt(struct sock *sk, int level, int optname, |
| @@ -761,6 +745,5 @@ int inet_csk_compat_setsockopt(struct sock *sk, int level, int optname, | |||
| 761 | return icsk->icsk_af_ops->setsockopt(sk, level, optname, | 745 | return icsk->icsk_af_ops->setsockopt(sk, level, optname, |
| 762 | optval, optlen); | 746 | optval, optlen); |
| 763 | } | 747 | } |
| 764 | |||
| 765 | EXPORT_SYMBOL_GPL(inet_csk_compat_setsockopt); | 748 | EXPORT_SYMBOL_GPL(inet_csk_compat_setsockopt); |
| 766 | #endif | 749 | #endif |
diff --git a/net/ipv4/inet_fragment.c b/net/ipv4/inet_fragment.c index a2ca6aed763b..5ff2a51b6d0c 100644 --- a/net/ipv4/inet_fragment.c +++ b/net/ipv4/inet_fragment.c | |||
| @@ -114,7 +114,6 @@ void inet_frag_kill(struct inet_frag_queue *fq, struct inet_frags *f) | |||
| 114 | fq->last_in |= INET_FRAG_COMPLETE; | 114 | fq->last_in |= INET_FRAG_COMPLETE; |
| 115 | } | 115 | } |
| 116 | } | 116 | } |
| 117 | |||
| 118 | EXPORT_SYMBOL(inet_frag_kill); | 117 | EXPORT_SYMBOL(inet_frag_kill); |
| 119 | 118 | ||
| 120 | static inline void frag_kfree_skb(struct netns_frags *nf, struct inet_frags *f, | 119 | static inline void frag_kfree_skb(struct netns_frags *nf, struct inet_frags *f, |
diff --git a/net/ipv4/inet_hashtables.c b/net/ipv4/inet_hashtables.c index d3e160a88219..fb7ad5a21ff3 100644 --- a/net/ipv4/inet_hashtables.c +++ b/net/ipv4/inet_hashtables.c | |||
| @@ -99,7 +99,6 @@ void inet_put_port(struct sock *sk) | |||
| 99 | __inet_put_port(sk); | 99 | __inet_put_port(sk); |
| 100 | local_bh_enable(); | 100 | local_bh_enable(); |
| 101 | } | 101 | } |
| 102 | |||
| 103 | EXPORT_SYMBOL(inet_put_port); | 102 | EXPORT_SYMBOL(inet_put_port); |
| 104 | 103 | ||
| 105 | void __inet_inherit_port(struct sock *sk, struct sock *child) | 104 | void __inet_inherit_port(struct sock *sk, struct sock *child) |
| @@ -116,7 +115,6 @@ void __inet_inherit_port(struct sock *sk, struct sock *child) | |||
| 116 | inet_csk(child)->icsk_bind_hash = tb; | 115 | inet_csk(child)->icsk_bind_hash = tb; |
| 117 | spin_unlock(&head->lock); | 116 | spin_unlock(&head->lock); |
| 118 | } | 117 | } |
| 119 | |||
| 120 | EXPORT_SYMBOL_GPL(__inet_inherit_port); | 118 | EXPORT_SYMBOL_GPL(__inet_inherit_port); |
| 121 | 119 | ||
| 122 | static inline int compute_score(struct sock *sk, struct net *net, | 120 | static inline int compute_score(struct sock *sk, struct net *net, |
| @@ -546,7 +544,6 @@ int inet_hash_connect(struct inet_timewait_death_row *death_row, | |||
| 546 | return __inet_hash_connect(death_row, sk, inet_sk_port_offset(sk), | 544 | return __inet_hash_connect(death_row, sk, inet_sk_port_offset(sk), |
| 547 | __inet_check_established, __inet_hash_nolisten); | 545 | __inet_check_established, __inet_hash_nolisten); |
| 548 | } | 546 | } |
| 549 | |||
| 550 | EXPORT_SYMBOL_GPL(inet_hash_connect); | 547 | EXPORT_SYMBOL_GPL(inet_hash_connect); |
| 551 | 548 | ||
| 552 | void inet_hashinfo_init(struct inet_hashinfo *h) | 549 | void inet_hashinfo_init(struct inet_hashinfo *h) |
| @@ -560,5 +557,4 @@ void inet_hashinfo_init(struct inet_hashinfo *h) | |||
| 560 | i + LISTENING_NULLS_BASE); | 557 | i + LISTENING_NULLS_BASE); |
| 561 | } | 558 | } |
| 562 | } | 559 | } |
| 563 | |||
| 564 | EXPORT_SYMBOL_GPL(inet_hashinfo_init); | 560 | EXPORT_SYMBOL_GPL(inet_hashinfo_init); |
diff --git a/net/ipv4/ip_fragment.c b/net/ipv4/ip_fragment.c index dd0dbf0c6b7f..b7c41654dde5 100644 --- a/net/ipv4/ip_fragment.c +++ b/net/ipv4/ip_fragment.c | |||
| @@ -632,6 +632,7 @@ int ip_defrag(struct sk_buff *skb, u32 user) | |||
| 632 | kfree_skb(skb); | 632 | kfree_skb(skb); |
| 633 | return -ENOMEM; | 633 | return -ENOMEM; |
| 634 | } | 634 | } |
| 635 | EXPORT_SYMBOL(ip_defrag); | ||
| 635 | 636 | ||
| 636 | #ifdef CONFIG_SYSCTL | 637 | #ifdef CONFIG_SYSCTL |
| 637 | static int zero; | 638 | static int zero; |
| @@ -785,5 +786,3 @@ void __init ipfrag_init(void) | |||
| 785 | ip4_frags.secret_interval = 10 * 60 * HZ; | 786 | ip4_frags.secret_interval = 10 * 60 * HZ; |
| 786 | inet_frags_init(&ip4_frags); | 787 | inet_frags_init(&ip4_frags); |
| 787 | } | 788 | } |
| 788 | |||
| 789 | EXPORT_SYMBOL(ip_defrag); | ||
diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c index 663cb2acb39e..6652bd9da676 100644 --- a/net/ipv4/ip_output.c +++ b/net/ipv4/ip_output.c | |||
| @@ -89,6 +89,7 @@ __inline__ void ip_send_check(struct iphdr *iph) | |||
| 89 | iph->check = 0; | 89 | iph->check = 0; |
| 90 | iph->check = ip_fast_csum((unsigned char *)iph, iph->ihl); | 90 | iph->check = ip_fast_csum((unsigned char *)iph, iph->ihl); |
| 91 | } | 91 | } |
| 92 | EXPORT_SYMBOL(ip_send_check); | ||
| 92 | 93 | ||
| 93 | int __ip_local_out(struct sk_buff *skb) | 94 | int __ip_local_out(struct sk_buff *skb) |
| 94 | { | 95 | { |
| @@ -172,7 +173,6 @@ int ip_build_and_send_pkt(struct sk_buff *skb, struct sock *sk, | |||
| 172 | /* Send it out. */ | 173 | /* Send it out. */ |
| 173 | return ip_local_out(skb); | 174 | return ip_local_out(skb); |
| 174 | } | 175 | } |
| 175 | |||
| 176 | EXPORT_SYMBOL_GPL(ip_build_and_send_pkt); | 176 | EXPORT_SYMBOL_GPL(ip_build_and_send_pkt); |
| 177 | 177 | ||
| 178 | static inline int ip_finish_output2(struct sk_buff *skb) | 178 | static inline int ip_finish_output2(struct sk_buff *skb) |
| @@ -403,6 +403,7 @@ no_route: | |||
| 403 | kfree_skb(skb); | 403 | kfree_skb(skb); |
| 404 | return -EHOSTUNREACH; | 404 | return -EHOSTUNREACH; |
| 405 | } | 405 | } |
| 406 | EXPORT_SYMBOL(ip_queue_xmit); | ||
| 406 | 407 | ||
| 407 | 408 | ||
| 408 | static void ip_copy_metadata(struct sk_buff *to, struct sk_buff *from) | 409 | static void ip_copy_metadata(struct sk_buff *to, struct sk_buff *from) |
| @@ -696,7 +697,6 @@ fail: | |||
| 696 | IP_INC_STATS(dev_net(dev), IPSTATS_MIB_FRAGFAILS); | 697 | IP_INC_STATS(dev_net(dev), IPSTATS_MIB_FRAGFAILS); |
| 697 | return err; | 698 | return err; |
| 698 | } | 699 | } |
| 699 | |||
| 700 | EXPORT_SYMBOL(ip_fragment); | 700 | EXPORT_SYMBOL(ip_fragment); |
| 701 | 701 | ||
| 702 | int | 702 | int |
| @@ -715,6 +715,7 @@ ip_generic_getfrag(void *from, char *to, int offset, int len, int odd, struct sk | |||
| 715 | } | 715 | } |
| 716 | return 0; | 716 | return 0; |
| 717 | } | 717 | } |
| 718 | EXPORT_SYMBOL(ip_generic_getfrag); | ||
| 718 | 719 | ||
| 719 | static inline __wsum | 720 | static inline __wsum |
| 720 | csum_page(struct page *page, int offset, int copy) | 721 | csum_page(struct page *page, int offset, int copy) |
| @@ -1447,7 +1448,3 @@ void __init ip_init(void) | |||
| 1447 | igmp_mc_proc_init(); | 1448 | igmp_mc_proc_init(); |
| 1448 | #endif | 1449 | #endif |
| 1449 | } | 1450 | } |
| 1450 | |||
| 1451 | EXPORT_SYMBOL(ip_generic_getfrag); | ||
| 1452 | EXPORT_SYMBOL(ip_queue_xmit); | ||
| 1453 | EXPORT_SYMBOL(ip_send_check); | ||
diff --git a/net/ipv4/netfilter/ipt_REJECT.c b/net/ipv4/netfilter/ipt_REJECT.c index f5f4a888e4ec..bbbd2736c549 100644 --- a/net/ipv4/netfilter/ipt_REJECT.c +++ b/net/ipv4/netfilter/ipt_REJECT.c | |||
| @@ -109,7 +109,7 @@ static void send_reset(struct sk_buff *oldskb, int hook) | |||
| 109 | addr_type = RTN_LOCAL; | 109 | addr_type = RTN_LOCAL; |
| 110 | 110 | ||
| 111 | /* ip_route_me_harder expects skb->dst to be set */ | 111 | /* ip_route_me_harder expects skb->dst to be set */ |
| 112 | skb_dst_set(nskb, dst_clone(skb_dst(oldskb))); | 112 | skb_dst_set_noref(nskb, skb_dst(oldskb)); |
| 113 | 113 | ||
| 114 | if (ip_route_me_harder(nskb, addr_type)) | 114 | if (ip_route_me_harder(nskb, addr_type)) |
| 115 | goto free_nskb; | 115 | goto free_nskb; |
diff --git a/net/ipv4/protocol.c b/net/ipv4/protocol.c index 542f22fc98b3..f2d297351405 100644 --- a/net/ipv4/protocol.c +++ b/net/ipv4/protocol.c | |||
| @@ -52,6 +52,7 @@ int inet_add_protocol(const struct net_protocol *prot, unsigned char protocol) | |||
| 52 | 52 | ||
| 53 | return ret; | 53 | return ret; |
| 54 | } | 54 | } |
| 55 | EXPORT_SYMBOL(inet_add_protocol); | ||
| 55 | 56 | ||
| 56 | /* | 57 | /* |
| 57 | * Remove a protocol from the hash tables. | 58 | * Remove a protocol from the hash tables. |
| @@ -76,6 +77,4 @@ int inet_del_protocol(const struct net_protocol *prot, unsigned char protocol) | |||
| 76 | 77 | ||
| 77 | return ret; | 78 | return ret; |
| 78 | } | 79 | } |
| 79 | |||
| 80 | EXPORT_SYMBOL(inet_add_protocol); | ||
| 81 | EXPORT_SYMBOL(inet_del_protocol); | 80 | EXPORT_SYMBOL(inet_del_protocol); |
diff --git a/net/ipv4/route.c b/net/ipv4/route.c index 03430de46166..562ce92de2a6 100644 --- a/net/ipv4/route.c +++ b/net/ipv4/route.c | |||
| @@ -1324,6 +1324,7 @@ void __ip_select_ident(struct iphdr *iph, struct dst_entry *dst, int more) | |||
| 1324 | 1324 | ||
| 1325 | ip_select_fb_ident(iph); | 1325 | ip_select_fb_ident(iph); |
| 1326 | } | 1326 | } |
| 1327 | EXPORT_SYMBOL(__ip_select_ident); | ||
| 1327 | 1328 | ||
| 1328 | static void rt_del(unsigned hash, struct rtable *rt) | 1329 | static void rt_del(unsigned hash, struct rtable *rt) |
| 1329 | { | 1330 | { |
| @@ -2735,7 +2736,6 @@ int __ip_route_output_key(struct net *net, struct rtable **rp, | |||
| 2735 | slow_output: | 2736 | slow_output: |
| 2736 | return ip_route_output_slow(net, rp, flp); | 2737 | return ip_route_output_slow(net, rp, flp); |
| 2737 | } | 2738 | } |
| 2738 | |||
| 2739 | EXPORT_SYMBOL_GPL(__ip_route_output_key); | 2739 | EXPORT_SYMBOL_GPL(__ip_route_output_key); |
| 2740 | 2740 | ||
| 2741 | static void ipv4_rt_blackhole_update_pmtu(struct dst_entry *dst, u32 mtu) | 2741 | static void ipv4_rt_blackhole_update_pmtu(struct dst_entry *dst, u32 mtu) |
| @@ -2819,13 +2819,13 @@ int ip_route_output_flow(struct net *net, struct rtable **rp, struct flowi *flp, | |||
| 2819 | 2819 | ||
| 2820 | return 0; | 2820 | return 0; |
| 2821 | } | 2821 | } |
| 2822 | |||
| 2823 | EXPORT_SYMBOL_GPL(ip_route_output_flow); | 2822 | EXPORT_SYMBOL_GPL(ip_route_output_flow); |
| 2824 | 2823 | ||
| 2825 | int ip_route_output_key(struct net *net, struct rtable **rp, struct flowi *flp) | 2824 | int ip_route_output_key(struct net *net, struct rtable **rp, struct flowi *flp) |
| 2826 | { | 2825 | { |
| 2827 | return ip_route_output_flow(net, rp, flp, NULL, 0); | 2826 | return ip_route_output_flow(net, rp, flp, NULL, 0); |
| 2828 | } | 2827 | } |
| 2828 | EXPORT_SYMBOL(ip_route_output_key); | ||
| 2829 | 2829 | ||
| 2830 | static int rt_fill_info(struct net *net, | 2830 | static int rt_fill_info(struct net *net, |
| 2831 | struct sk_buff *skb, u32 pid, u32 seq, int event, | 2831 | struct sk_buff *skb, u32 pid, u32 seq, int event, |
| @@ -3363,6 +3363,3 @@ void __init ip_static_sysctl_init(void) | |||
| 3363 | register_sysctl_paths(ipv4_path, ipv4_skeleton); | 3363 | register_sysctl_paths(ipv4_path, ipv4_skeleton); |
| 3364 | } | 3364 | } |
| 3365 | #endif | 3365 | #endif |
| 3366 | |||
| 3367 | EXPORT_SYMBOL(__ip_select_ident); | ||
| 3368 | EXPORT_SYMBOL(ip_route_output_key); | ||
diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c index 4e6ddfbab09e..b8601b7683a6 100644 --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c | |||
| @@ -315,7 +315,6 @@ struct tcp_splice_state { | |||
| 315 | * is strict, actions are advisory and have some latency. | 315 | * is strict, actions are advisory and have some latency. |
| 316 | */ | 316 | */ |
| 317 | int tcp_memory_pressure __read_mostly; | 317 | int tcp_memory_pressure __read_mostly; |
| 318 | |||
| 319 | EXPORT_SYMBOL(tcp_memory_pressure); | 318 | EXPORT_SYMBOL(tcp_memory_pressure); |
| 320 | 319 | ||
| 321 | void tcp_enter_memory_pressure(struct sock *sk) | 320 | void tcp_enter_memory_pressure(struct sock *sk) |
| @@ -325,7 +324,6 @@ void tcp_enter_memory_pressure(struct sock *sk) | |||
| 325 | tcp_memory_pressure = 1; | 324 | tcp_memory_pressure = 1; |
| 326 | } | 325 | } |
| 327 | } | 326 | } |
| 328 | |||
| 329 | EXPORT_SYMBOL(tcp_enter_memory_pressure); | 327 | EXPORT_SYMBOL(tcp_enter_memory_pressure); |
| 330 | 328 | ||
| 331 | /* Convert seconds to retransmits based on initial and max timeout */ | 329 | /* Convert seconds to retransmits based on initial and max timeout */ |
| @@ -460,6 +458,7 @@ unsigned int tcp_poll(struct file *file, struct socket *sock, poll_table *wait) | |||
| 460 | } | 458 | } |
| 461 | return mask; | 459 | return mask; |
| 462 | } | 460 | } |
| 461 | EXPORT_SYMBOL(tcp_poll); | ||
| 463 | 462 | ||
| 464 | int tcp_ioctl(struct sock *sk, int cmd, unsigned long arg) | 463 | int tcp_ioctl(struct sock *sk, int cmd, unsigned long arg) |
| 465 | { | 464 | { |
| @@ -508,6 +507,7 @@ int tcp_ioctl(struct sock *sk, int cmd, unsigned long arg) | |||
| 508 | 507 | ||
| 509 | return put_user(answ, (int __user *)arg); | 508 | return put_user(answ, (int __user *)arg); |
| 510 | } | 509 | } |
| 510 | EXPORT_SYMBOL(tcp_ioctl); | ||
| 511 | 511 | ||
| 512 | static inline void tcp_mark_push(struct tcp_sock *tp, struct sk_buff *skb) | 512 | static inline void tcp_mark_push(struct tcp_sock *tp, struct sk_buff *skb) |
| 513 | { | 513 | { |
| @@ -675,6 +675,7 @@ ssize_t tcp_splice_read(struct socket *sock, loff_t *ppos, | |||
| 675 | 675 | ||
| 676 | return ret; | 676 | return ret; |
| 677 | } | 677 | } |
| 678 | EXPORT_SYMBOL(tcp_splice_read); | ||
| 678 | 679 | ||
| 679 | struct sk_buff *sk_stream_alloc_skb(struct sock *sk, int size, gfp_t gfp) | 680 | struct sk_buff *sk_stream_alloc_skb(struct sock *sk, int size, gfp_t gfp) |
| 680 | { | 681 | { |
| @@ -873,6 +874,7 @@ ssize_t tcp_sendpage(struct socket *sock, struct page *page, int offset, | |||
| 873 | release_sock(sk); | 874 | release_sock(sk); |
| 874 | return res; | 875 | return res; |
| 875 | } | 876 | } |
| 877 | EXPORT_SYMBOL(tcp_sendpage); | ||
| 876 | 878 | ||
| 877 | #define TCP_PAGE(sk) (sk->sk_sndmsg_page) | 879 | #define TCP_PAGE(sk) (sk->sk_sndmsg_page) |
| 878 | #define TCP_OFF(sk) (sk->sk_sndmsg_off) | 880 | #define TCP_OFF(sk) (sk->sk_sndmsg_off) |
| @@ -1121,6 +1123,7 @@ out_err: | |||
| 1121 | release_sock(sk); | 1123 | release_sock(sk); |
| 1122 | return err; | 1124 | return err; |
| 1123 | } | 1125 | } |
| 1126 | EXPORT_SYMBOL(tcp_sendmsg); | ||
| 1124 | 1127 | ||
| 1125 | /* | 1128 | /* |
| 1126 | * Handle reading urgent data. BSD has very simple semantics for | 1129 | * Handle reading urgent data. BSD has very simple semantics for |
| @@ -1380,6 +1383,7 @@ int tcp_read_sock(struct sock *sk, read_descriptor_t *desc, | |||
| 1380 | tcp_cleanup_rbuf(sk, copied); | 1383 | tcp_cleanup_rbuf(sk, copied); |
| 1381 | return copied; | 1384 | return copied; |
| 1382 | } | 1385 | } |
| 1386 | EXPORT_SYMBOL(tcp_read_sock); | ||
| 1383 | 1387 | ||
| 1384 | /* | 1388 | /* |
| 1385 | * This routine copies from a sock struct into the user buffer. | 1389 | * This routine copies from a sock struct into the user buffer. |
| @@ -1774,6 +1778,7 @@ recv_urg: | |||
| 1774 | err = tcp_recv_urg(sk, msg, len, flags); | 1778 | err = tcp_recv_urg(sk, msg, len, flags); |
| 1775 | goto out; | 1779 | goto out; |
| 1776 | } | 1780 | } |
| 1781 | EXPORT_SYMBOL(tcp_recvmsg); | ||
| 1777 | 1782 | ||
| 1778 | void tcp_set_state(struct sock *sk, int state) | 1783 | void tcp_set_state(struct sock *sk, int state) |
| 1779 | { | 1784 | { |
| @@ -1866,6 +1871,7 @@ void tcp_shutdown(struct sock *sk, int how) | |||
| 1866 | tcp_send_fin(sk); | 1871 | tcp_send_fin(sk); |
| 1867 | } | 1872 | } |
| 1868 | } | 1873 | } |
| 1874 | EXPORT_SYMBOL(tcp_shutdown); | ||
| 1869 | 1875 | ||
| 1870 | void tcp_close(struct sock *sk, long timeout) | 1876 | void tcp_close(struct sock *sk, long timeout) |
| 1871 | { | 1877 | { |
| @@ -2029,6 +2035,7 @@ out: | |||
| 2029 | local_bh_enable(); | 2035 | local_bh_enable(); |
| 2030 | sock_put(sk); | 2036 | sock_put(sk); |
| 2031 | } | 2037 | } |
| 2038 | EXPORT_SYMBOL(tcp_close); | ||
| 2032 | 2039 | ||
| 2033 | /* These states need RST on ABORT according to RFC793 */ | 2040 | /* These states need RST on ABORT according to RFC793 */ |
| 2034 | 2041 | ||
| @@ -2102,6 +2109,7 @@ int tcp_disconnect(struct sock *sk, int flags) | |||
| 2102 | sk->sk_error_report(sk); | 2109 | sk->sk_error_report(sk); |
| 2103 | return err; | 2110 | return err; |
| 2104 | } | 2111 | } |
| 2112 | EXPORT_SYMBOL(tcp_disconnect); | ||
| 2105 | 2113 | ||
| 2106 | /* | 2114 | /* |
| 2107 | * Socket option code for TCP. | 2115 | * Socket option code for TCP. |
| @@ -2400,6 +2408,7 @@ int tcp_setsockopt(struct sock *sk, int level, int optname, char __user *optval, | |||
| 2400 | optval, optlen); | 2408 | optval, optlen); |
| 2401 | return do_tcp_setsockopt(sk, level, optname, optval, optlen); | 2409 | return do_tcp_setsockopt(sk, level, optname, optval, optlen); |
| 2402 | } | 2410 | } |
| 2411 | EXPORT_SYMBOL(tcp_setsockopt); | ||
| 2403 | 2412 | ||
| 2404 | #ifdef CONFIG_COMPAT | 2413 | #ifdef CONFIG_COMPAT |
| 2405 | int compat_tcp_setsockopt(struct sock *sk, int level, int optname, | 2414 | int compat_tcp_setsockopt(struct sock *sk, int level, int optname, |
| @@ -2410,7 +2419,6 @@ int compat_tcp_setsockopt(struct sock *sk, int level, int optname, | |||
| 2410 | optval, optlen); | 2419 | optval, optlen); |
| 2411 | return do_tcp_setsockopt(sk, level, optname, optval, optlen); | 2420 | return do_tcp_setsockopt(sk, level, optname, optval, optlen); |
| 2412 | } | 2421 | } |
| 2413 | |||
| 2414 | EXPORT_SYMBOL(compat_tcp_setsockopt); | 2422 | EXPORT_SYMBOL(compat_tcp_setsockopt); |
| 2415 | #endif | 2423 | #endif |
| 2416 | 2424 | ||
| @@ -2476,7 +2484,6 @@ void tcp_get_info(struct sock *sk, struct tcp_info *info) | |||
| 2476 | 2484 | ||
| 2477 | info->tcpi_total_retrans = tp->total_retrans; | 2485 | info->tcpi_total_retrans = tp->total_retrans; |
| 2478 | } | 2486 | } |
| 2479 | |||
| 2480 | EXPORT_SYMBOL_GPL(tcp_get_info); | 2487 | EXPORT_SYMBOL_GPL(tcp_get_info); |
| 2481 | 2488 | ||
| 2482 | static int do_tcp_getsockopt(struct sock *sk, int level, | 2489 | static int do_tcp_getsockopt(struct sock *sk, int level, |
| @@ -2615,6 +2622,7 @@ int tcp_getsockopt(struct sock *sk, int level, int optname, char __user *optval, | |||
| 2615 | optval, optlen); | 2622 | optval, optlen); |
| 2616 | return do_tcp_getsockopt(sk, level, optname, optval, optlen); | 2623 | return do_tcp_getsockopt(sk, level, optname, optval, optlen); |
| 2617 | } | 2624 | } |
| 2625 | EXPORT_SYMBOL(tcp_getsockopt); | ||
| 2618 | 2626 | ||
| 2619 | #ifdef CONFIG_COMPAT | 2627 | #ifdef CONFIG_COMPAT |
| 2620 | int compat_tcp_getsockopt(struct sock *sk, int level, int optname, | 2628 | int compat_tcp_getsockopt(struct sock *sk, int level, int optname, |
| @@ -2625,7 +2633,6 @@ int compat_tcp_getsockopt(struct sock *sk, int level, int optname, | |||
| 2625 | optval, optlen); | 2633 | optval, optlen); |
| 2626 | return do_tcp_getsockopt(sk, level, optname, optval, optlen); | 2634 | return do_tcp_getsockopt(sk, level, optname, optval, optlen); |
| 2627 | } | 2635 | } |
| 2628 | |||
| 2629 | EXPORT_SYMBOL(compat_tcp_getsockopt); | 2636 | EXPORT_SYMBOL(compat_tcp_getsockopt); |
| 2630 | #endif | 2637 | #endif |
| 2631 | 2638 | ||
| @@ -2862,7 +2869,6 @@ void tcp_free_md5sig_pool(void) | |||
| 2862 | if (pool) | 2869 | if (pool) |
| 2863 | __tcp_free_md5sig_pool(pool); | 2870 | __tcp_free_md5sig_pool(pool); |
| 2864 | } | 2871 | } |
| 2865 | |||
| 2866 | EXPORT_SYMBOL(tcp_free_md5sig_pool); | 2872 | EXPORT_SYMBOL(tcp_free_md5sig_pool); |
| 2867 | 2873 | ||
| 2868 | static struct tcp_md5sig_pool * __percpu * | 2874 | static struct tcp_md5sig_pool * __percpu * |
| @@ -2938,7 +2944,6 @@ retry: | |||
| 2938 | } | 2944 | } |
| 2939 | return pool; | 2945 | return pool; |
| 2940 | } | 2946 | } |
| 2941 | |||
| 2942 | EXPORT_SYMBOL(tcp_alloc_md5sig_pool); | 2947 | EXPORT_SYMBOL(tcp_alloc_md5sig_pool); |
| 2943 | 2948 | ||
| 2944 | 2949 | ||
| @@ -2990,7 +2995,6 @@ int tcp_md5_hash_header(struct tcp_md5sig_pool *hp, | |||
| 2990 | th->check = old_checksum; | 2995 | th->check = old_checksum; |
| 2991 | return err; | 2996 | return err; |
| 2992 | } | 2997 | } |
| 2993 | |||
| 2994 | EXPORT_SYMBOL(tcp_md5_hash_header); | 2998 | EXPORT_SYMBOL(tcp_md5_hash_header); |
| 2995 | 2999 | ||
| 2996 | int tcp_md5_hash_skb_data(struct tcp_md5sig_pool *hp, | 3000 | int tcp_md5_hash_skb_data(struct tcp_md5sig_pool *hp, |
| @@ -3024,7 +3028,6 @@ int tcp_md5_hash_skb_data(struct tcp_md5sig_pool *hp, | |||
| 3024 | 3028 | ||
| 3025 | return 0; | 3029 | return 0; |
| 3026 | } | 3030 | } |
| 3027 | |||
| 3028 | EXPORT_SYMBOL(tcp_md5_hash_skb_data); | 3031 | EXPORT_SYMBOL(tcp_md5_hash_skb_data); |
| 3029 | 3032 | ||
| 3030 | int tcp_md5_hash_key(struct tcp_md5sig_pool *hp, struct tcp_md5sig_key *key) | 3033 | int tcp_md5_hash_key(struct tcp_md5sig_pool *hp, struct tcp_md5sig_key *key) |
| @@ -3034,7 +3037,6 @@ int tcp_md5_hash_key(struct tcp_md5sig_pool *hp, struct tcp_md5sig_key *key) | |||
| 3034 | sg_init_one(&sg, key->key, key->keylen); | 3037 | sg_init_one(&sg, key->key, key->keylen); |
| 3035 | return crypto_hash_update(&hp->md5_desc, &sg, key->keylen); | 3038 | return crypto_hash_update(&hp->md5_desc, &sg, key->keylen); |
| 3036 | } | 3039 | } |
| 3037 | |||
| 3038 | EXPORT_SYMBOL(tcp_md5_hash_key); | 3040 | EXPORT_SYMBOL(tcp_md5_hash_key); |
| 3039 | 3041 | ||
| 3040 | #endif | 3042 | #endif |
| @@ -3306,16 +3308,3 @@ void __init tcp_init(void) | |||
| 3306 | tcp_secret_retiring = &tcp_secret_two; | 3308 | tcp_secret_retiring = &tcp_secret_two; |
| 3307 | tcp_secret_secondary = &tcp_secret_two; | 3309 | tcp_secret_secondary = &tcp_secret_two; |
| 3308 | } | 3310 | } |
| 3309 | |||
| 3310 | EXPORT_SYMBOL(tcp_close); | ||
| 3311 | EXPORT_SYMBOL(tcp_disconnect); | ||
| 3312 | EXPORT_SYMBOL(tcp_getsockopt); | ||
| 3313 | EXPORT_SYMBOL(tcp_ioctl); | ||
| 3314 | EXPORT_SYMBOL(tcp_poll); | ||
| 3315 | EXPORT_SYMBOL(tcp_read_sock); | ||
| 3316 | EXPORT_SYMBOL(tcp_recvmsg); | ||
| 3317 | EXPORT_SYMBOL(tcp_sendmsg); | ||
| 3318 | EXPORT_SYMBOL(tcp_splice_read); | ||
| 3319 | EXPORT_SYMBOL(tcp_sendpage); | ||
| 3320 | EXPORT_SYMBOL(tcp_setsockopt); | ||
| 3321 | EXPORT_SYMBOL(tcp_shutdown); | ||
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index 04334661fa28..3c426cb318e7 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c | |||
| @@ -78,10 +78,13 @@ int sysctl_tcp_window_scaling __read_mostly = 1; | |||
| 78 | int sysctl_tcp_sack __read_mostly = 1; | 78 | int sysctl_tcp_sack __read_mostly = 1; |
| 79 | int sysctl_tcp_fack __read_mostly = 1; | 79 | int sysctl_tcp_fack __read_mostly = 1; |
| 80 | int sysctl_tcp_reordering __read_mostly = TCP_FASTRETRANS_THRESH; | 80 | int sysctl_tcp_reordering __read_mostly = TCP_FASTRETRANS_THRESH; |
| 81 | EXPORT_SYMBOL(sysctl_tcp_reordering); | ||
| 81 | int sysctl_tcp_ecn __read_mostly = 2; | 82 | int sysctl_tcp_ecn __read_mostly = 2; |
| 83 | EXPORT_SYMBOL(sysctl_tcp_ecn); | ||
| 82 | int sysctl_tcp_dsack __read_mostly = 1; | 84 | int sysctl_tcp_dsack __read_mostly = 1; |
| 83 | int sysctl_tcp_app_win __read_mostly = 31; | 85 | int sysctl_tcp_app_win __read_mostly = 31; |
| 84 | int sysctl_tcp_adv_win_scale __read_mostly = 2; | 86 | int sysctl_tcp_adv_win_scale __read_mostly = 2; |
| 87 | EXPORT_SYMBOL(sysctl_tcp_adv_win_scale); | ||
| 85 | 88 | ||
| 86 | int sysctl_tcp_stdurg __read_mostly; | 89 | int sysctl_tcp_stdurg __read_mostly; |
| 87 | int sysctl_tcp_rfc1337 __read_mostly; | 90 | int sysctl_tcp_rfc1337 __read_mostly; |
| @@ -419,6 +422,7 @@ void tcp_initialize_rcv_mss(struct sock *sk) | |||
| 419 | 422 | ||
| 420 | inet_csk(sk)->icsk_ack.rcv_mss = hint; | 423 | inet_csk(sk)->icsk_ack.rcv_mss = hint; |
| 421 | } | 424 | } |
| 425 | EXPORT_SYMBOL(tcp_initialize_rcv_mss); | ||
| 422 | 426 | ||
| 423 | /* Receiver "autotuning" code. | 427 | /* Receiver "autotuning" code. |
| 424 | * | 428 | * |
| @@ -2938,6 +2942,7 @@ void tcp_simple_retransmit(struct sock *sk) | |||
| 2938 | } | 2942 | } |
| 2939 | tcp_xmit_retransmit_queue(sk); | 2943 | tcp_xmit_retransmit_queue(sk); |
| 2940 | } | 2944 | } |
| 2945 | EXPORT_SYMBOL(tcp_simple_retransmit); | ||
| 2941 | 2946 | ||
| 2942 | /* Process an event, which can update packets-in-flight not trivially. | 2947 | /* Process an event, which can update packets-in-flight not trivially. |
| 2943 | * Main goal of this function is to calculate new estimate for left_out, | 2948 | * Main goal of this function is to calculate new estimate for left_out, |
| @@ -3858,6 +3863,7 @@ void tcp_parse_options(struct sk_buff *skb, struct tcp_options_received *opt_rx, | |||
| 3858 | } | 3863 | } |
| 3859 | } | 3864 | } |
| 3860 | } | 3865 | } |
| 3866 | EXPORT_SYMBOL(tcp_parse_options); | ||
| 3861 | 3867 | ||
| 3862 | static int tcp_parse_aligned_timestamp(struct tcp_sock *tp, struct tcphdr *th) | 3868 | static int tcp_parse_aligned_timestamp(struct tcp_sock *tp, struct tcphdr *th) |
| 3863 | { | 3869 | { |
| @@ -3931,6 +3937,7 @@ u8 *tcp_parse_md5sig_option(struct tcphdr *th) | |||
| 3931 | } | 3937 | } |
| 3932 | return NULL; | 3938 | return NULL; |
| 3933 | } | 3939 | } |
| 3940 | EXPORT_SYMBOL(tcp_parse_md5sig_option); | ||
| 3934 | #endif | 3941 | #endif |
| 3935 | 3942 | ||
| 3936 | static inline void tcp_store_ts_recent(struct tcp_sock *tp) | 3943 | static inline void tcp_store_ts_recent(struct tcp_sock *tp) |
| @@ -5432,6 +5439,7 @@ discard: | |||
| 5432 | __kfree_skb(skb); | 5439 | __kfree_skb(skb); |
| 5433 | return 0; | 5440 | return 0; |
| 5434 | } | 5441 | } |
| 5442 | EXPORT_SYMBOL(tcp_rcv_established); | ||
| 5435 | 5443 | ||
| 5436 | static int tcp_rcv_synsent_state_process(struct sock *sk, struct sk_buff *skb, | 5444 | static int tcp_rcv_synsent_state_process(struct sock *sk, struct sk_buff *skb, |
| 5437 | struct tcphdr *th, unsigned len) | 5445 | struct tcphdr *th, unsigned len) |
| @@ -5931,14 +5939,4 @@ discard: | |||
| 5931 | } | 5939 | } |
| 5932 | return 0; | 5940 | return 0; |
| 5933 | } | 5941 | } |
| 5934 | |||
| 5935 | EXPORT_SYMBOL(sysctl_tcp_ecn); | ||
| 5936 | EXPORT_SYMBOL(sysctl_tcp_reordering); | ||
| 5937 | EXPORT_SYMBOL(sysctl_tcp_adv_win_scale); | ||
| 5938 | EXPORT_SYMBOL(tcp_parse_options); | ||
| 5939 | #ifdef CONFIG_TCP_MD5SIG | ||
| 5940 | EXPORT_SYMBOL(tcp_parse_md5sig_option); | ||
| 5941 | #endif | ||
| 5942 | EXPORT_SYMBOL(tcp_rcv_established); | ||
| 5943 | EXPORT_SYMBOL(tcp_rcv_state_process); | 5942 | EXPORT_SYMBOL(tcp_rcv_state_process); |
| 5944 | EXPORT_SYMBOL(tcp_initialize_rcv_mss); | ||
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c index 8fa32f5ae2ce..44545e8e8c92 100644 --- a/net/ipv4/tcp_ipv4.c +++ b/net/ipv4/tcp_ipv4.c | |||
| @@ -84,6 +84,7 @@ | |||
| 84 | 84 | ||
| 85 | int sysctl_tcp_tw_reuse __read_mostly; | 85 | int sysctl_tcp_tw_reuse __read_mostly; |
| 86 | int sysctl_tcp_low_latency __read_mostly; | 86 | int sysctl_tcp_low_latency __read_mostly; |
| 87 | EXPORT_SYMBOL(sysctl_tcp_low_latency); | ||
| 87 | 88 | ||
| 88 | 89 | ||
| 89 | #ifdef CONFIG_TCP_MD5SIG | 90 | #ifdef CONFIG_TCP_MD5SIG |
| @@ -100,6 +101,7 @@ struct tcp_md5sig_key *tcp_v4_md5_do_lookup(struct sock *sk, __be32 addr) | |||
| 100 | #endif | 101 | #endif |
| 101 | 102 | ||
| 102 | struct inet_hashinfo tcp_hashinfo; | 103 | struct inet_hashinfo tcp_hashinfo; |
| 104 | EXPORT_SYMBOL(tcp_hashinfo); | ||
| 103 | 105 | ||
| 104 | static inline __u32 tcp_v4_init_sequence(struct sk_buff *skb) | 106 | static inline __u32 tcp_v4_init_sequence(struct sk_buff *skb) |
| 105 | { | 107 | { |
| @@ -139,7 +141,6 @@ int tcp_twsk_unique(struct sock *sk, struct sock *sktw, void *twp) | |||
| 139 | 141 | ||
| 140 | return 0; | 142 | return 0; |
| 141 | } | 143 | } |
| 142 | |||
| 143 | EXPORT_SYMBOL_GPL(tcp_twsk_unique); | 144 | EXPORT_SYMBOL_GPL(tcp_twsk_unique); |
| 144 | 145 | ||
| 145 | /* This will initiate an outgoing connection. */ | 146 | /* This will initiate an outgoing connection. */ |
| @@ -267,6 +268,7 @@ failure: | |||
| 267 | inet->inet_dport = 0; | 268 | inet->inet_dport = 0; |
| 268 | return err; | 269 | return err; |
| 269 | } | 270 | } |
| 271 | EXPORT_SYMBOL(tcp_v4_connect); | ||
| 270 | 272 | ||
| 271 | /* | 273 | /* |
| 272 | * This routine does path mtu discovery as defined in RFC1191. | 274 | * This routine does path mtu discovery as defined in RFC1191. |
| @@ -545,6 +547,7 @@ void tcp_v4_send_check(struct sock *sk, struct sk_buff *skb) | |||
| 545 | 547 | ||
| 546 | __tcp_v4_send_check(skb, inet->inet_saddr, inet->inet_daddr); | 548 | __tcp_v4_send_check(skb, inet->inet_saddr, inet->inet_daddr); |
| 547 | } | 549 | } |
| 550 | EXPORT_SYMBOL(tcp_v4_send_check); | ||
| 548 | 551 | ||
| 549 | int tcp_v4_gso_send_check(struct sk_buff *skb) | 552 | int tcp_v4_gso_send_check(struct sk_buff *skb) |
| 550 | { | 553 | { |
| @@ -860,7 +863,6 @@ struct tcp_md5sig_key *tcp_v4_md5_lookup(struct sock *sk, | |||
| 860 | { | 863 | { |
| 861 | return tcp_v4_md5_do_lookup(sk, inet_sk(addr_sk)->inet_daddr); | 864 | return tcp_v4_md5_do_lookup(sk, inet_sk(addr_sk)->inet_daddr); |
| 862 | } | 865 | } |
| 863 | |||
| 864 | EXPORT_SYMBOL(tcp_v4_md5_lookup); | 866 | EXPORT_SYMBOL(tcp_v4_md5_lookup); |
| 865 | 867 | ||
| 866 | static struct tcp_md5sig_key *tcp_v4_reqsk_md5_lookup(struct sock *sk, | 868 | static struct tcp_md5sig_key *tcp_v4_reqsk_md5_lookup(struct sock *sk, |
| @@ -927,7 +929,6 @@ int tcp_v4_md5_do_add(struct sock *sk, __be32 addr, | |||
| 927 | } | 929 | } |
| 928 | return 0; | 930 | return 0; |
| 929 | } | 931 | } |
| 930 | |||
| 931 | EXPORT_SYMBOL(tcp_v4_md5_do_add); | 932 | EXPORT_SYMBOL(tcp_v4_md5_do_add); |
| 932 | 933 | ||
| 933 | static int tcp_v4_md5_add_func(struct sock *sk, struct sock *addr_sk, | 934 | static int tcp_v4_md5_add_func(struct sock *sk, struct sock *addr_sk, |
| @@ -965,7 +966,6 @@ int tcp_v4_md5_do_del(struct sock *sk, __be32 addr) | |||
| 965 | } | 966 | } |
| 966 | return -ENOENT; | 967 | return -ENOENT; |
| 967 | } | 968 | } |
| 968 | |||
| 969 | EXPORT_SYMBOL(tcp_v4_md5_do_del); | 969 | EXPORT_SYMBOL(tcp_v4_md5_do_del); |
| 970 | 970 | ||
| 971 | static void tcp_v4_clear_md5_list(struct sock *sk) | 971 | static void tcp_v4_clear_md5_list(struct sock *sk) |
| @@ -1138,7 +1138,6 @@ clear_hash_noput: | |||
| 1138 | memset(md5_hash, 0, 16); | 1138 | memset(md5_hash, 0, 16); |
| 1139 | return 1; | 1139 | return 1; |
| 1140 | } | 1140 | } |
| 1141 | |||
| 1142 | EXPORT_SYMBOL(tcp_v4_md5_hash_skb); | 1141 | EXPORT_SYMBOL(tcp_v4_md5_hash_skb); |
| 1143 | 1142 | ||
| 1144 | static int tcp_v4_inbound_md5_hash(struct sock *sk, struct sk_buff *skb) | 1143 | static int tcp_v4_inbound_md5_hash(struct sock *sk, struct sk_buff *skb) |
| @@ -1396,6 +1395,7 @@ drop_and_free: | |||
| 1396 | drop: | 1395 | drop: |
| 1397 | return 0; | 1396 | return 0; |
| 1398 | } | 1397 | } |
| 1398 | EXPORT_SYMBOL(tcp_v4_conn_request); | ||
| 1399 | 1399 | ||
| 1400 | 1400 | ||
| 1401 | /* | 1401 | /* |
| @@ -1481,6 +1481,7 @@ exit: | |||
| 1481 | dst_release(dst); | 1481 | dst_release(dst); |
| 1482 | return NULL; | 1482 | return NULL; |
| 1483 | } | 1483 | } |
| 1484 | EXPORT_SYMBOL(tcp_v4_syn_recv_sock); | ||
| 1484 | 1485 | ||
| 1485 | static struct sock *tcp_v4_hnd_req(struct sock *sk, struct sk_buff *skb) | 1486 | static struct sock *tcp_v4_hnd_req(struct sock *sk, struct sk_buff *skb) |
| 1486 | { | 1487 | { |
| @@ -1610,6 +1611,7 @@ csum_err: | |||
| 1610 | TCP_INC_STATS_BH(sock_net(sk), TCP_MIB_INERRS); | 1611 | TCP_INC_STATS_BH(sock_net(sk), TCP_MIB_INERRS); |
| 1611 | goto discard; | 1612 | goto discard; |
| 1612 | } | 1613 | } |
| 1614 | EXPORT_SYMBOL(tcp_v4_do_rcv); | ||
| 1613 | 1615 | ||
| 1614 | /* | 1616 | /* |
| 1615 | * From tcp_input.c | 1617 | * From tcp_input.c |
| @@ -1796,6 +1798,7 @@ int tcp_v4_remember_stamp(struct sock *sk) | |||
| 1796 | 1798 | ||
| 1797 | return 0; | 1799 | return 0; |
| 1798 | } | 1800 | } |
| 1801 | EXPORT_SYMBOL(tcp_v4_remember_stamp); | ||
| 1799 | 1802 | ||
| 1800 | int tcp_v4_tw_remember_stamp(struct inet_timewait_sock *tw) | 1803 | int tcp_v4_tw_remember_stamp(struct inet_timewait_sock *tw) |
| 1801 | { | 1804 | { |
| @@ -1835,6 +1838,7 @@ const struct inet_connection_sock_af_ops ipv4_specific = { | |||
| 1835 | .compat_getsockopt = compat_ip_getsockopt, | 1838 | .compat_getsockopt = compat_ip_getsockopt, |
| 1836 | #endif | 1839 | #endif |
| 1837 | }; | 1840 | }; |
| 1841 | EXPORT_SYMBOL(ipv4_specific); | ||
| 1838 | 1842 | ||
| 1839 | #ifdef CONFIG_TCP_MD5SIG | 1843 | #ifdef CONFIG_TCP_MD5SIG |
| 1840 | static const struct tcp_sock_af_ops tcp_sock_ipv4_specific = { | 1844 | static const struct tcp_sock_af_ops tcp_sock_ipv4_specific = { |
| @@ -1963,7 +1967,6 @@ void tcp_v4_destroy_sock(struct sock *sk) | |||
| 1963 | 1967 | ||
| 1964 | percpu_counter_dec(&tcp_sockets_allocated); | 1968 | percpu_counter_dec(&tcp_sockets_allocated); |
| 1965 | } | 1969 | } |
| 1966 | |||
| 1967 | EXPORT_SYMBOL(tcp_v4_destroy_sock); | 1970 | EXPORT_SYMBOL(tcp_v4_destroy_sock); |
| 1968 | 1971 | ||
| 1969 | #ifdef CONFIG_PROC_FS | 1972 | #ifdef CONFIG_PROC_FS |
| @@ -2367,11 +2370,13 @@ int tcp_proc_register(struct net *net, struct tcp_seq_afinfo *afinfo) | |||
| 2367 | rc = -ENOMEM; | 2370 | rc = -ENOMEM; |
| 2368 | return rc; | 2371 | return rc; |
| 2369 | } | 2372 | } |
| 2373 | EXPORT_SYMBOL(tcp_proc_register); | ||
| 2370 | 2374 | ||
| 2371 | void tcp_proc_unregister(struct net *net, struct tcp_seq_afinfo *afinfo) | 2375 | void tcp_proc_unregister(struct net *net, struct tcp_seq_afinfo *afinfo) |
| 2372 | { | 2376 | { |
| 2373 | proc_net_remove(net, afinfo->name); | 2377 | proc_net_remove(net, afinfo->name); |
| 2374 | } | 2378 | } |
| 2379 | EXPORT_SYMBOL(tcp_proc_unregister); | ||
| 2375 | 2380 | ||
| 2376 | static void get_openreq4(struct sock *sk, struct request_sock *req, | 2381 | static void get_openreq4(struct sock *sk, struct request_sock *req, |
| 2377 | struct seq_file *f, int i, int uid, int *len) | 2382 | struct seq_file *f, int i, int uid, int *len) |
| @@ -2618,6 +2623,7 @@ struct proto tcp_prot = { | |||
| 2618 | .compat_getsockopt = compat_tcp_getsockopt, | 2623 | .compat_getsockopt = compat_tcp_getsockopt, |
| 2619 | #endif | 2624 | #endif |
| 2620 | }; | 2625 | }; |
| 2626 | EXPORT_SYMBOL(tcp_prot); | ||
| 2621 | 2627 | ||
| 2622 | 2628 | ||
| 2623 | static int __net_init tcp_sk_init(struct net *net) | 2629 | static int __net_init tcp_sk_init(struct net *net) |
| @@ -2648,20 +2654,3 @@ void __init tcp_v4_init(void) | |||
| 2648 | if (register_pernet_subsys(&tcp_sk_ops)) | 2654 | if (register_pernet_subsys(&tcp_sk_ops)) |
| 2649 | panic("Failed to create the TCP control socket.\n"); | 2655 | panic("Failed to create the TCP control socket.\n"); |
| 2650 | } | 2656 | } |
| 2651 | |||
| 2652 | EXPORT_SYMBOL(ipv4_specific); | ||
| 2653 | EXPORT_SYMBOL(tcp_hashinfo); | ||
| 2654 | EXPORT_SYMBOL(tcp_prot); | ||
| 2655 | EXPORT_SYMBOL(tcp_v4_conn_request); | ||
| 2656 | EXPORT_SYMBOL(tcp_v4_connect); | ||
| 2657 | EXPORT_SYMBOL(tcp_v4_do_rcv); | ||
| 2658 | EXPORT_SYMBOL(tcp_v4_remember_stamp); | ||
| 2659 | EXPORT_SYMBOL(tcp_v4_send_check); | ||
| 2660 | EXPORT_SYMBOL(tcp_v4_syn_recv_sock); | ||
| 2661 | |||
| 2662 | #ifdef CONFIG_PROC_FS | ||
| 2663 | EXPORT_SYMBOL(tcp_proc_register); | ||
| 2664 | EXPORT_SYMBOL(tcp_proc_unregister); | ||
| 2665 | #endif | ||
| 2666 | EXPORT_SYMBOL(sysctl_tcp_low_latency); | ||
| 2667 | |||
diff --git a/net/ipv4/tcp_minisocks.c b/net/ipv4/tcp_minisocks.c index 794c2e122a41..f25b56cb85cb 100644 --- a/net/ipv4/tcp_minisocks.c +++ b/net/ipv4/tcp_minisocks.c | |||
| @@ -47,7 +47,6 @@ struct inet_timewait_death_row tcp_death_row = { | |||
| 47 | .twcal_timer = TIMER_INITIALIZER(inet_twdr_twcal_tick, 0, | 47 | .twcal_timer = TIMER_INITIALIZER(inet_twdr_twcal_tick, 0, |
| 48 | (unsigned long)&tcp_death_row), | 48 | (unsigned long)&tcp_death_row), |
| 49 | }; | 49 | }; |
| 50 | |||
| 51 | EXPORT_SYMBOL_GPL(tcp_death_row); | 50 | EXPORT_SYMBOL_GPL(tcp_death_row); |
| 52 | 51 | ||
| 53 | static __inline__ int tcp_in_window(u32 seq, u32 end_seq, u32 s_win, u32 e_win) | 52 | static __inline__ int tcp_in_window(u32 seq, u32 end_seq, u32 s_win, u32 e_win) |
| @@ -262,6 +261,7 @@ kill: | |||
| 262 | inet_twsk_put(tw); | 261 | inet_twsk_put(tw); |
| 263 | return TCP_TW_SUCCESS; | 262 | return TCP_TW_SUCCESS; |
| 264 | } | 263 | } |
| 264 | EXPORT_SYMBOL(tcp_timewait_state_process); | ||
| 265 | 265 | ||
| 266 | /* | 266 | /* |
| 267 | * Move a socket to time-wait or dead fin-wait-2 state. | 267 | * Move a socket to time-wait or dead fin-wait-2 state. |
| @@ -362,7 +362,6 @@ void tcp_twsk_destructor(struct sock *sk) | |||
| 362 | tcp_free_md5sig_pool(); | 362 | tcp_free_md5sig_pool(); |
| 363 | #endif | 363 | #endif |
| 364 | } | 364 | } |
| 365 | |||
| 366 | EXPORT_SYMBOL_GPL(tcp_twsk_destructor); | 365 | EXPORT_SYMBOL_GPL(tcp_twsk_destructor); |
| 367 | 366 | ||
| 368 | static inline void TCP_ECN_openreq_child(struct tcp_sock *tp, | 367 | static inline void TCP_ECN_openreq_child(struct tcp_sock *tp, |
| @@ -510,6 +509,7 @@ struct sock *tcp_create_openreq_child(struct sock *sk, struct request_sock *req, | |||
| 510 | } | 509 | } |
| 511 | return newsk; | 510 | return newsk; |
| 512 | } | 511 | } |
| 512 | EXPORT_SYMBOL(tcp_create_openreq_child); | ||
| 513 | 513 | ||
| 514 | /* | 514 | /* |
| 515 | * Process an incoming packet for SYN_RECV sockets represented | 515 | * Process an incoming packet for SYN_RECV sockets represented |
| @@ -706,6 +706,7 @@ embryonic_reset: | |||
| 706 | inet_csk_reqsk_queue_drop(sk, req, prev); | 706 | inet_csk_reqsk_queue_drop(sk, req, prev); |
| 707 | return NULL; | 707 | return NULL; |
| 708 | } | 708 | } |
| 709 | EXPORT_SYMBOL(tcp_check_req); | ||
| 709 | 710 | ||
| 710 | /* | 711 | /* |
| 711 | * Queue segment on the new socket if the new socket is active, | 712 | * Queue segment on the new socket if the new socket is active, |
| @@ -737,8 +738,4 @@ int tcp_child_process(struct sock *parent, struct sock *child, | |||
| 737 | sock_put(child); | 738 | sock_put(child); |
| 738 | return ret; | 739 | return ret; |
| 739 | } | 740 | } |
| 740 | |||
| 741 | EXPORT_SYMBOL(tcp_check_req); | ||
| 742 | EXPORT_SYMBOL(tcp_child_process); | 741 | EXPORT_SYMBOL(tcp_child_process); |
| 743 | EXPORT_SYMBOL(tcp_create_openreq_child); | ||
| 744 | EXPORT_SYMBOL(tcp_timewait_state_process); | ||
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c index 25ff62e35a68..b3f6f099b1a3 100644 --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c | |||
| @@ -247,6 +247,7 @@ void tcp_select_initial_window(int __space, __u32 mss, | |||
| 247 | /* Set the clamp no higher than max representable value */ | 247 | /* Set the clamp no higher than max representable value */ |
| 248 | (*window_clamp) = min(65535U << (*rcv_wscale), *window_clamp); | 248 | (*window_clamp) = min(65535U << (*rcv_wscale), *window_clamp); |
| 249 | } | 249 | } |
| 250 | EXPORT_SYMBOL(tcp_select_initial_window); | ||
| 250 | 251 | ||
| 251 | /* Chose a new window to advertise, update state in tcp_sock for the | 252 | /* Chose a new window to advertise, update state in tcp_sock for the |
| 252 | * socket, and return result with RFC1323 scaling applied. The return | 253 | * socket, and return result with RFC1323 scaling applied. The return |
| @@ -1189,6 +1190,7 @@ void tcp_mtup_init(struct sock *sk) | |||
| 1189 | icsk->icsk_mtup.search_low = tcp_mss_to_mtu(sk, sysctl_tcp_base_mss); | 1190 | icsk->icsk_mtup.search_low = tcp_mss_to_mtu(sk, sysctl_tcp_base_mss); |
| 1190 | icsk->icsk_mtup.probe_size = 0; | 1191 | icsk->icsk_mtup.probe_size = 0; |
| 1191 | } | 1192 | } |
| 1193 | EXPORT_SYMBOL(tcp_mtup_init); | ||
| 1192 | 1194 | ||
| 1193 | /* This function synchronize snd mss to current pmtu/exthdr set. | 1195 | /* This function synchronize snd mss to current pmtu/exthdr set. |
| 1194 | 1196 | ||
| @@ -1232,6 +1234,7 @@ unsigned int tcp_sync_mss(struct sock *sk, u32 pmtu) | |||
| 1232 | 1234 | ||
| 1233 | return mss_now; | 1235 | return mss_now; |
| 1234 | } | 1236 | } |
| 1237 | EXPORT_SYMBOL(tcp_sync_mss); | ||
| 1235 | 1238 | ||
| 1236 | /* Compute the current effective MSS, taking SACKs and IP options, | 1239 | /* Compute the current effective MSS, taking SACKs and IP options, |
| 1237 | * and even PMTU discovery events into account. | 1240 | * and even PMTU discovery events into account. |
| @@ -2514,6 +2517,7 @@ struct sk_buff *tcp_make_synack(struct sock *sk, struct dst_entry *dst, | |||
| 2514 | 2517 | ||
| 2515 | return skb; | 2518 | return skb; |
| 2516 | } | 2519 | } |
| 2520 | EXPORT_SYMBOL(tcp_make_synack); | ||
| 2517 | 2521 | ||
| 2518 | /* Do all connect socket setups that can be done AF independent. */ | 2522 | /* Do all connect socket setups that can be done AF independent. */ |
| 2519 | static void tcp_connect_init(struct sock *sk) | 2523 | static void tcp_connect_init(struct sock *sk) |
| @@ -2616,6 +2620,7 @@ int tcp_connect(struct sock *sk) | |||
| 2616 | inet_csk(sk)->icsk_rto, TCP_RTO_MAX); | 2620 | inet_csk(sk)->icsk_rto, TCP_RTO_MAX); |
| 2617 | return 0; | 2621 | return 0; |
| 2618 | } | 2622 | } |
| 2623 | EXPORT_SYMBOL(tcp_connect); | ||
| 2619 | 2624 | ||
| 2620 | /* Send out a delayed ack, the caller does the policy checking | 2625 | /* Send out a delayed ack, the caller does the policy checking |
| 2621 | * to see if we should even be here. See tcp_input.c:tcp_ack_snd_check() | 2626 | * to see if we should even be here. See tcp_input.c:tcp_ack_snd_check() |
| @@ -2820,10 +2825,3 @@ void tcp_send_probe0(struct sock *sk) | |||
| 2820 | TCP_RTO_MAX); | 2825 | TCP_RTO_MAX); |
| 2821 | } | 2826 | } |
| 2822 | } | 2827 | } |
| 2823 | |||
| 2824 | EXPORT_SYMBOL(tcp_select_initial_window); | ||
| 2825 | EXPORT_SYMBOL(tcp_connect); | ||
| 2826 | EXPORT_SYMBOL(tcp_make_synack); | ||
| 2827 | EXPORT_SYMBOL(tcp_simple_retransmit); | ||
| 2828 | EXPORT_SYMBOL(tcp_sync_mss); | ||
| 2829 | EXPORT_SYMBOL(tcp_mtup_init); | ||
diff --git a/net/ipv4/tcp_timer.c b/net/ipv4/tcp_timer.c index 440a5c6004f6..808bb920c9f5 100644 --- a/net/ipv4/tcp_timer.c +++ b/net/ipv4/tcp_timer.c | |||
| @@ -41,7 +41,6 @@ void tcp_init_xmit_timers(struct sock *sk) | |||
| 41 | inet_csk_init_xmit_timers(sk, &tcp_write_timer, &tcp_delack_timer, | 41 | inet_csk_init_xmit_timers(sk, &tcp_write_timer, &tcp_delack_timer, |
| 42 | &tcp_keepalive_timer); | 42 | &tcp_keepalive_timer); |
| 43 | } | 43 | } |
| 44 | |||
| 45 | EXPORT_SYMBOL(tcp_init_xmit_timers); | 44 | EXPORT_SYMBOL(tcp_init_xmit_timers); |
| 46 | 45 | ||
| 47 | static void tcp_write_err(struct sock *sk) | 46 | static void tcp_write_err(struct sock *sk) |
diff --git a/net/ipv4/tunnel4.c b/net/ipv4/tunnel4.c index 3b3813cc80b9..59186ca7808a 100644 --- a/net/ipv4/tunnel4.c +++ b/net/ipv4/tunnel4.c | |||
| @@ -48,7 +48,6 @@ err: | |||
| 48 | 48 | ||
| 49 | return ret; | 49 | return ret; |
| 50 | } | 50 | } |
| 51 | |||
| 52 | EXPORT_SYMBOL(xfrm4_tunnel_register); | 51 | EXPORT_SYMBOL(xfrm4_tunnel_register); |
| 53 | 52 | ||
| 54 | int xfrm4_tunnel_deregister(struct xfrm_tunnel *handler, unsigned short family) | 53 | int xfrm4_tunnel_deregister(struct xfrm_tunnel *handler, unsigned short family) |
| @@ -72,7 +71,6 @@ int xfrm4_tunnel_deregister(struct xfrm_tunnel *handler, unsigned short family) | |||
| 72 | 71 | ||
| 73 | return ret; | 72 | return ret; |
| 74 | } | 73 | } |
| 75 | |||
| 76 | EXPORT_SYMBOL(xfrm4_tunnel_deregister); | 74 | EXPORT_SYMBOL(xfrm4_tunnel_deregister); |
| 77 | 75 | ||
| 78 | static int tunnel4_rcv(struct sk_buff *skb) | 76 | static int tunnel4_rcv(struct sk_buff *skb) |
diff --git a/net/ipv4/udplite.c b/net/ipv4/udplite.c index 6610bf76369f..ab76aa928fa9 100644 --- a/net/ipv4/udplite.c +++ b/net/ipv4/udplite.c | |||
| @@ -58,6 +58,7 @@ struct proto udplite_prot = { | |||
| 58 | .compat_getsockopt = compat_udp_getsockopt, | 58 | .compat_getsockopt = compat_udp_getsockopt, |
| 59 | #endif | 59 | #endif |
| 60 | }; | 60 | }; |
| 61 | EXPORT_SYMBOL(udplite_prot); | ||
| 61 | 62 | ||
| 62 | static struct inet_protosw udplite4_protosw = { | 63 | static struct inet_protosw udplite4_protosw = { |
| 63 | .type = SOCK_DGRAM, | 64 | .type = SOCK_DGRAM, |
| @@ -127,5 +128,3 @@ out_unregister_proto: | |||
| 127 | out_register_err: | 128 | out_register_err: |
| 128 | printk(KERN_CRIT "%s: Cannot add UDP-Lite protocol.\n", __func__); | 129 | printk(KERN_CRIT "%s: Cannot add UDP-Lite protocol.\n", __func__); |
| 129 | } | 130 | } |
| 130 | |||
| 131 | EXPORT_SYMBOL(udplite_prot); | ||
diff --git a/net/ipv4/xfrm4_input.c b/net/ipv4/xfrm4_input.c index ad8fbb871aa0..06814b6216dc 100644 --- a/net/ipv4/xfrm4_input.c +++ b/net/ipv4/xfrm4_input.c | |||
| @@ -163,5 +163,4 @@ int xfrm4_rcv(struct sk_buff *skb) | |||
| 163 | { | 163 | { |
| 164 | return xfrm4_rcv_spi(skb, ip_hdr(skb)->protocol, 0); | 164 | return xfrm4_rcv_spi(skb, ip_hdr(skb)->protocol, 0); |
| 165 | } | 165 | } |
| 166 | |||
| 167 | EXPORT_SYMBOL(xfrm4_rcv); | 166 | EXPORT_SYMBOL(xfrm4_rcv); |
