Commit 13b1833910205289172cdc655cb9bc61188f77e9

Authored by Patrick McHardy
Committed by David S. Miller
1 parent a3c479772c

[NETFILTER]: nf_conntrack: EXPORT_SYMBOL cleanup

- move EXPORT_SYMBOL next to exported symbol
- use EXPORT_SYMBOL_GPL since this is what the original code used

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

Showing 10 changed files with 75 additions and 86 deletions Side-by-side Diff

net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c
... ... @@ -112,6 +112,8 @@
112 112 }
113 113  
114 114 int nf_nat_module_is_loaded = 0;
  115 +EXPORT_SYMBOL_GPL(nf_nat_module_is_loaded);
  116 +
115 117 static u_int32_t ipv4_get_features(const struct nf_conntrack_tuple *tuple)
116 118 {
117 119 if (nf_nat_module_is_loaded)
... ... @@ -530,9 +532,4 @@
530 532  
531 533 module_init(nf_conntrack_l3proto_ipv4_init);
532 534 module_exit(nf_conntrack_l3proto_ipv4_fini);
533   -
534   -EXPORT_SYMBOL(nf_ct_ipv4_gather_frags);
535   -#ifdef CONFIG_NF_NAT_NEEDED
536   -EXPORT_SYMBOL(nf_nat_module_is_loaded);
537   -#endif
net/ipv4/netfilter/nf_conntrack_proto_icmp.c
... ... @@ -380,6 +380,5 @@
380 380 #endif
381 381 #endif
382 382 };
383   -
384   -EXPORT_SYMBOL(nf_conntrack_l4proto_icmp);
  383 +EXPORT_SYMBOL_GPL(nf_conntrack_l4proto_icmp);
net/netfilter/nf_conntrack_core.c
... ... @@ -63,17 +63,27 @@
63 63 #endif
64 64  
65 65 DEFINE_RWLOCK(nf_conntrack_lock);
  66 +EXPORT_SYMBOL_GPL(nf_conntrack_lock);
66 67  
67 68 /* nf_conntrack_standalone needs this */
68 69 atomic_t nf_conntrack_count = ATOMIC_INIT(0);
69 70 EXPORT_SYMBOL_GPL(nf_conntrack_count);
70 71  
71   -void (*nf_conntrack_destroyed)(struct nf_conn *conntrack) = NULL;
  72 +void (*nf_conntrack_destroyed)(struct nf_conn *conntrack);
  73 +EXPORT_SYMBOL_GPL(nf_conntrack_destroyed);
  74 +
72 75 unsigned int nf_conntrack_htable_size __read_mostly;
  76 +EXPORT_SYMBOL_GPL(nf_conntrack_htable_size);
  77 +
73 78 int nf_conntrack_max __read_mostly;
74 79 EXPORT_SYMBOL_GPL(nf_conntrack_max);
  80 +
75 81 struct list_head *nf_conntrack_hash __read_mostly;
  82 +EXPORT_SYMBOL_GPL(nf_conntrack_hash);
  83 +
76 84 struct nf_conn nf_conntrack_untracked __read_mostly;
  85 +EXPORT_SYMBOL_GPL(nf_conntrack_untracked);
  86 +
77 87 unsigned int nf_ct_log_invalid __read_mostly;
78 88 LIST_HEAD(unconfirmed);
79 89 static int nf_conntrack_vmalloc __read_mostly;
... ... @@ -210,6 +220,7 @@
210 220 mutex_unlock(&nf_ct_cache_mutex);
211 221 return ret;
212 222 }
  223 +EXPORT_SYMBOL_GPL(nf_conntrack_register_cache);
213 224  
214 225 /* FIXME: In the current, only nf_conntrack_cleanup() can call this function. */
215 226 void nf_conntrack_unregister_cache(u_int32_t features)
... ... @@ -244,6 +255,7 @@
244 255  
245 256 mutex_unlock(&nf_ct_cache_mutex);
246 257 }
  258 +EXPORT_SYMBOL_GPL(nf_conntrack_unregister_cache);
247 259  
248 260 int
249 261 nf_ct_get_tuple(const struct sk_buff *skb,
... ... @@ -266,6 +278,7 @@
266 278  
267 279 return l4proto->pkt_to_tuple(skb, dataoff, tuple);
268 280 }
  281 +EXPORT_SYMBOL_GPL(nf_ct_get_tuple);
269 282  
270 283 int
271 284 nf_ct_invert_tuple(struct nf_conntrack_tuple *inverse,
... ... @@ -284,6 +297,7 @@
284 297 inverse->dst.protonum = orig->dst.protonum;
285 298 return l4proto->invert_tuple(inverse, orig);
286 299 }
  300 +EXPORT_SYMBOL_GPL(nf_ct_invert_tuple);
287 301  
288 302 static void
289 303 clean_from_lists(struct nf_conn *ct)
... ... @@ -382,6 +396,7 @@
382 396  
383 397 return NULL;
384 398 }
  399 +EXPORT_SYMBOL_GPL(__nf_conntrack_find);
385 400  
386 401 /* Find a connection corresponding to a tuple. */
387 402 struct nf_conntrack_tuple_hash *
... ... @@ -398,6 +413,7 @@
398 413  
399 414 return h;
400 415 }
  416 +EXPORT_SYMBOL_GPL(nf_conntrack_find_get);
401 417  
402 418 static void __nf_conntrack_hash_insert(struct nf_conn *ct,
403 419 unsigned int hash,
... ... @@ -421,6 +437,7 @@
421 437 __nf_conntrack_hash_insert(ct, hash, repl_hash);
422 438 write_unlock_bh(&nf_conntrack_lock);
423 439 }
  440 +EXPORT_SYMBOL_GPL(nf_conntrack_hash_insert);
424 441  
425 442 /* Confirm a connection given skb; places it in hash table */
426 443 int
... ... @@ -498,6 +515,7 @@
498 515 write_unlock_bh(&nf_conntrack_lock);
499 516 return NF_DROP;
500 517 }
  518 +EXPORT_SYMBOL_GPL(__nf_conntrack_confirm);
501 519  
502 520 /* Returns true if a connection correspondings to the tuple (required
503 521 for NAT). */
... ... @@ -513,6 +531,7 @@
513 531  
514 532 return h != NULL;
515 533 }
  534 +EXPORT_SYMBOL_GPL(nf_conntrack_tuple_taken);
516 535  
517 536 /* There's a small race here where we may free a just-assured
518 537 connection. Too bad: we're in trouble anyway. */
... ... @@ -631,6 +650,7 @@
631 650 l3proto = __nf_ct_l3proto_find(orig->src.l3num);
632 651 return __nf_conntrack_alloc(orig, repl, l3proto, 0);
633 652 }
  653 +EXPORT_SYMBOL_GPL(nf_conntrack_alloc);
634 654  
635 655 void nf_conntrack_free(struct nf_conn *conntrack)
636 656 {
... ... @@ -641,6 +661,7 @@
641 661 kmem_cache_free(nf_ct_cache[features].cachep, conntrack);
642 662 atomic_dec(&nf_conntrack_count);
643 663 }
  664 +EXPORT_SYMBOL_GPL(nf_conntrack_free);
644 665  
645 666 /* Allocate a new conntrack: we return -ENOMEM if classification
646 667 failed due to stress. Otherwise it really is unclassifiable. */
... ... @@ -845,6 +866,7 @@
845 866  
846 867 return ret;
847 868 }
  869 +EXPORT_SYMBOL_GPL(nf_conntrack_in);
848 870  
849 871 int nf_ct_invert_tuplepr(struct nf_conntrack_tuple *inverse,
850 872 const struct nf_conntrack_tuple *orig)
... ... @@ -854,6 +876,7 @@
854 876 __nf_ct_l4proto_find(orig->src.l3num,
855 877 orig->dst.protonum));
856 878 }
  879 +EXPORT_SYMBOL_GPL(nf_ct_invert_tuplepr);
857 880  
858 881 /* Alter reply tuple (maybe alter helper). This is for NAT, and is
859 882 implicitly racy: see __nf_conntrack_confirm */
... ... @@ -874,6 +897,7 @@
874 897 help->helper = __nf_ct_helper_find(newreply);
875 898 write_unlock_bh(&nf_conntrack_lock);
876 899 }
  900 +EXPORT_SYMBOL_GPL(nf_conntrack_alter_reply);
877 901  
878 902 /* Refresh conntrack for this many jiffies and do accounting if do_acct is 1 */
879 903 void __nf_ct_refresh_acct(struct nf_conn *ct,
... ... @@ -931,6 +955,7 @@
931 955 if (event)
932 956 nf_conntrack_event_cache(event, skb);
933 957 }
  958 +EXPORT_SYMBOL_GPL(__nf_ct_refresh_acct);
934 959  
935 960 #if defined(CONFIG_NF_CT_NETLINK) || \
936 961 defined(CONFIG_NF_CT_NETLINK_MODULE)
... ... @@ -955,6 +980,7 @@
955 980 nfattr_failure:
956 981 return -1;
957 982 }
  983 +EXPORT_SYMBOL_GPL(nf_ct_port_tuple_to_nfattr);
958 984  
959 985 static const size_t cta_min_proto[CTA_PROTO_MAX] = {
960 986 [CTA_PROTO_SRC_PORT-1] = sizeof(u_int16_t),
... ... @@ -975,6 +1001,7 @@
975 1001  
976 1002 return 0;
977 1003 }
  1004 +EXPORT_SYMBOL_GPL(nf_ct_port_nfattr_to_tuple);
978 1005 #endif
979 1006  
980 1007 /* Used by ipt_REJECT and ip6t_REJECT. */
... ... @@ -995,6 +1022,7 @@
995 1022 nskb->nfctinfo = ctinfo;
996 1023 nf_conntrack_get(nskb->nfct);
997 1024 }
  1025 +EXPORT_SYMBOL_GPL(__nf_conntrack_attach);
998 1026  
999 1027 static inline int
1000 1028 do_iter(const struct nf_conntrack_tuple_hash *i,
... ... @@ -1048,6 +1076,7 @@
1048 1076 nf_ct_put(ct);
1049 1077 }
1050 1078 }
  1079 +EXPORT_SYMBOL_GPL(nf_ct_iterate_cleanup);
1051 1080  
1052 1081 static int kill_all(struct nf_conn *i, void *data)
1053 1082 {
... ... @@ -1067,6 +1096,7 @@
1067 1096 {
1068 1097 nf_ct_iterate_cleanup(kill_all, NULL);
1069 1098 }
  1099 +EXPORT_SYMBOL_GPL(nf_conntrack_flush);
1070 1100  
1071 1101 /* Mishearing the voices in his head, our hero wonders how he's
1072 1102 supposed to kill the mall. */
net/netfilter/nf_conntrack_ecache.c
... ... @@ -28,9 +28,13 @@
28 28 #include <net/netfilter/nf_conntrack_core.h>
29 29  
30 30 ATOMIC_NOTIFIER_HEAD(nf_conntrack_chain);
  31 +EXPORT_SYMBOL_GPL(nf_conntrack_chain);
  32 +
31 33 ATOMIC_NOTIFIER_HEAD(nf_conntrack_expect_chain);
  34 +EXPORT_SYMBOL_GPL(nf_conntrack_expect_chain);
32 35  
33 36 DEFINE_PER_CPU(struct nf_conntrack_ecache, nf_conntrack_ecache);
  37 +EXPORT_PER_CPU_SYMBOL_GPL(nf_conntrack_ecache);
34 38  
35 39 /* deliver cached events and clear cache entry - must be called with locally
36 40 * disabled softirqs */
... ... @@ -59,6 +63,7 @@
59 63 __nf_ct_deliver_cached_events(ecache);
60 64 local_bh_enable();
61 65 }
  66 +EXPORT_SYMBOL_GPL(nf_ct_deliver_cached_events);
62 67  
63 68 /* Deliver cached events for old pending events, if current conntrack != old */
64 69 void __nf_ct_event_cache_init(struct nf_conn *ct)
... ... @@ -74,6 +79,7 @@
74 79 ecache->ct = ct;
75 80 nf_conntrack_get(&ct->ct_general);
76 81 }
  82 +EXPORT_SYMBOL_GPL(__nf_ct_event_cache_init);
77 83  
78 84 /* flush the event cache - touches other CPU's data and must not be called
79 85 * while packets are still passing through the code */
net/netfilter/nf_conntrack_expect.c
... ... @@ -27,6 +27,8 @@
27 27 #include <net/netfilter/nf_conntrack_tuple.h>
28 28  
29 29 LIST_HEAD(nf_conntrack_expect_list);
  30 +EXPORT_SYMBOL_GPL(nf_conntrack_expect_list);
  31 +
30 32 kmem_cache_t *nf_conntrack_expect_cachep __read_mostly;
31 33 static unsigned int nf_conntrack_expect_next_id;
32 34  
... ... @@ -43,6 +45,7 @@
43 45 master_help->expecting--;
44 46 nf_conntrack_expect_put(exp);
45 47 }
  48 +EXPORT_SYMBOL_GPL(nf_ct_unlink_expect);
46 49  
47 50 static void expectation_timed_out(unsigned long ul_expect)
48 51 {
... ... @@ -65,6 +68,7 @@
65 68 }
66 69 return NULL;
67 70 }
  71 +EXPORT_SYMBOL_GPL(__nf_conntrack_expect_find);
68 72  
69 73 /* Just find a expectation corresponding to a tuple. */
70 74 struct nf_conntrack_expect *
... ... @@ -80,6 +84,7 @@
80 84  
81 85 return i;
82 86 }
  87 +EXPORT_SYMBOL_GPL(nf_conntrack_expect_find_get);
83 88  
84 89 /* If an expectation for this connection is found, it gets delete from
85 90 * global list then returned. */
... ... @@ -125,6 +130,7 @@
125 130 }
126 131 }
127 132 }
  133 +EXPORT_SYMBOL_GPL(nf_ct_remove_expectations);
128 134  
129 135 /* Would two expected things clash? */
130 136 static inline int expect_clash(const struct nf_conntrack_expect *a,
... ... @@ -179,6 +185,7 @@
179 185 }
180 186 write_unlock_bh(&nf_conntrack_lock);
181 187 }
  188 +EXPORT_SYMBOL_GPL(nf_conntrack_unexpect_related);
182 189  
183 190 /* We don't increase the master conntrack refcount for non-fulfilled
184 191 * conntracks. During the conntrack destruction, the expectations are
... ... @@ -195,6 +202,7 @@
195 202 atomic_set(&new->use, 1);
196 203 return new;
197 204 }
  205 +EXPORT_SYMBOL_GPL(nf_conntrack_expect_alloc);
198 206  
199 207 void nf_conntrack_expect_init(struct nf_conntrack_expect *exp, int family,
200 208 union nf_conntrack_address *saddr,
... ... @@ -269,6 +277,7 @@
269 277 if (atomic_dec_and_test(&exp->use))
270 278 kmem_cache_free(nf_conntrack_expect_cachep, exp);
271 279 }
  280 +EXPORT_SYMBOL_GPL(nf_conntrack_expect_put);
272 281  
273 282 static void nf_conntrack_expect_insert(struct nf_conntrack_expect *exp)
274 283 {
... ... @@ -351,6 +360,7 @@
351 360 write_unlock_bh(&nf_conntrack_lock);
352 361 return ret;
353 362 }
  363 +EXPORT_SYMBOL_GPL(nf_conntrack_expect_related);
354 364  
355 365 #ifdef CONFIG_PROC_FS
356 366 static void *exp_seq_start(struct seq_file *s, loff_t *pos)
net/netfilter/nf_conntrack_helper.c
... ... @@ -63,11 +63,13 @@
63 63  
64 64 return helper;
65 65 }
  66 +EXPORT_SYMBOL_GPL(nf_ct_helper_find_get);
66 67  
67 68 void nf_ct_helper_put(struct nf_conntrack_helper *helper)
68 69 {
69 70 module_put(helper->me);
70 71 }
  72 +EXPORT_SYMBOL_GPL(nf_ct_helper_put);
71 73  
72 74 struct nf_conntrack_helper *
73 75 __nf_conntrack_helper_find_byname(const char *name)
... ... @@ -81,6 +83,7 @@
81 83  
82 84 return NULL;
83 85 }
  86 +EXPORT_SYMBOL_GPL(__nf_conntrack_helper_find_byname);
84 87  
85 88 static inline int unhelp(struct nf_conntrack_tuple_hash *i,
86 89 const struct nf_conntrack_helper *me)
... ... @@ -115,6 +118,7 @@
115 118  
116 119 return 0;
117 120 }
  121 +EXPORT_SYMBOL_GPL(nf_conntrack_helper_register);
118 122  
119 123 void nf_conntrack_helper_unregister(struct nf_conntrack_helper *me)
120 124 {
... ... @@ -148,4 +152,5 @@
148 152 /* Someone could be still looking at the helper in a bh. */
149 153 synchronize_net();
150 154 }
  155 +EXPORT_SYMBOL_GPL(nf_conntrack_helper_unregister);
net/netfilter/nf_conntrack_proto.c
... ... @@ -30,6 +30,7 @@
30 30  
31 31 struct nf_conntrack_l4proto **nf_ct_protos[PF_MAX] __read_mostly;
32 32 struct nf_conntrack_l3proto *nf_ct_l3protos[AF_MAX] __read_mostly;
  33 +EXPORT_SYMBOL_GPL(nf_ct_l3protos);
33 34  
34 35 #ifdef CONFIG_SYSCTL
35 36 static DEFINE_MUTEX(nf_ct_proto_sysctl_mutex);
... ... @@ -67,6 +68,7 @@
67 68  
68 69 return nf_ct_protos[l3proto][l4proto];
69 70 }
  71 +EXPORT_SYMBOL_GPL(__nf_ct_l4proto_find);
70 72  
71 73 /* this is guaranteed to always return a valid protocol helper, since
72 74 * it falls back to generic_protocol */
73 75  
... ... @@ -83,11 +85,13 @@
83 85  
84 86 return p;
85 87 }
  88 +EXPORT_SYMBOL_GPL(nf_ct_l4proto_find_get);
86 89  
87 90 void nf_ct_l4proto_put(struct nf_conntrack_l4proto *p)
88 91 {
89 92 module_put(p->me);
90 93 }
  94 +EXPORT_SYMBOL_GPL(nf_ct_l4proto_put);
91 95  
92 96 struct nf_conntrack_l3proto *
93 97 nf_ct_l3proto_find_get(u_int16_t l3proto)
94 98  
... ... @@ -102,11 +106,13 @@
102 106  
103 107 return p;
104 108 }
  109 +EXPORT_SYMBOL_GPL(nf_ct_l3proto_find_get);
105 110  
106 111 void nf_ct_l3proto_put(struct nf_conntrack_l3proto *p)
107 112 {
108 113 module_put(p->me);
109 114 }
  115 +EXPORT_SYMBOL_GPL(nf_ct_l3proto_put);
110 116  
111 117 int
112 118 nf_ct_l3proto_try_module_get(unsigned short l3proto)
... ... @@ -125,6 +131,7 @@
125 131  
126 132 return 0;
127 133 }
  134 +EXPORT_SYMBOL_GPL(nf_ct_l3proto_try_module_get);
128 135  
129 136 void nf_ct_l3proto_module_put(unsigned short l3proto)
130 137 {
... ... @@ -136,6 +143,7 @@
136 143  
137 144 module_put(p->me);
138 145 }
  146 +EXPORT_SYMBOL_GPL(nf_ct_l3proto_module_put);
139 147  
140 148 static int kill_l3proto(struct nf_conn *i, void *data)
141 149 {
... ... @@ -207,6 +215,7 @@
207 215 out:
208 216 return ret;
209 217 }
  218 +EXPORT_SYMBOL_GPL(nf_conntrack_l3proto_register);
210 219  
211 220 int nf_conntrack_l3proto_unregister(struct nf_conntrack_l3proto *proto)
212 221 {
... ... @@ -238,6 +247,7 @@
238 247 out:
239 248 return ret;
240 249 }
  250 +EXPORT_SYMBOL_GPL(nf_conntrack_l3proto_unregister);
241 251  
242 252 static int nf_ct_l4proto_register_sysctl(struct nf_conntrack_l4proto *l4proto)
243 253 {
... ... @@ -359,6 +369,7 @@
359 369 out:
360 370 return ret;
361 371 }
  372 +EXPORT_SYMBOL_GPL(nf_conntrack_l4proto_register);
362 373  
363 374 int nf_conntrack_l4proto_unregister(struct nf_conntrack_l4proto *l4proto)
364 375 {
... ... @@ -396,4 +407,5 @@
396 407 out:
397 408 return ret;
398 409 }
  410 +EXPORT_SYMBOL_GPL(nf_conntrack_l4proto_unregister);
net/netfilter/nf_conntrack_proto_tcp.c
... ... @@ -762,7 +762,7 @@
762 762 receiver->td_end, receiver->td_maxend, receiver->td_maxwin,
763 763 receiver->td_scale);
764 764 }
765   -
  765 +EXPORT_SYMBOL_GPL(nf_conntrack_tcp_update);
766 766 #endif
767 767  
768 768 #define TH_FIN 0x01
... ... @@ -1405,6 +1405,7 @@
1405 1405 #endif
1406 1406 #endif
1407 1407 };
  1408 +EXPORT_SYMBOL_GPL(nf_conntrack_l4proto_tcp4);
1408 1409  
1409 1410 struct nf_conntrack_l4proto nf_conntrack_l4proto_tcp6 =
1410 1411 {
... ... @@ -1431,7 +1432,5 @@
1431 1432 .ctl_table = tcp_sysctl_table,
1432 1433 #endif
1433 1434 };
1434   -
1435   -EXPORT_SYMBOL(nf_conntrack_l4proto_tcp4);
1436   -EXPORT_SYMBOL(nf_conntrack_l4proto_tcp6);
  1435 +EXPORT_SYMBOL_GPL(nf_conntrack_l4proto_tcp6);
net/netfilter/nf_conntrack_proto_udp.c
... ... @@ -223,6 +223,7 @@
223 223 #endif
224 224 #endif
225 225 };
  226 +EXPORT_SYMBOL_GPL(nf_conntrack_l4proto_udp4);
226 227  
227 228 struct nf_conntrack_l4proto nf_conntrack_l4proto_udp6 =
228 229 {
... ... @@ -247,7 +248,5 @@
247 248 .ctl_table = udp_sysctl_table,
248 249 #endif
249 250 };
250   -
251   -EXPORT_SYMBOL(nf_conntrack_l4proto_udp4);
252   -EXPORT_SYMBOL(nf_conntrack_l4proto_udp6);
  251 +EXPORT_SYMBOL_GPL(nf_conntrack_l4proto_udp6);
net/netfilter/nf_conntrack_standalone.c
... ... @@ -329,6 +329,7 @@
329 329 /* Sysctl support */
330 330  
331 331 int nf_conntrack_checksum __read_mostly = 1;
  332 +EXPORT_SYMBOL_GPL(nf_conntrack_checksum);
332 333  
333 334 #ifdef CONFIG_SYSCTL
334 335 /* Log invalid packets of a given protocol */
... ... @@ -414,7 +415,7 @@
414 415 },
415 416 { .ctl_name = 0 }
416 417 };
417   -EXPORT_SYMBOL(nf_ct_log_invalid);
  418 +EXPORT_SYMBOL_GPL(nf_ct_log_invalid);
418 419 #endif /* CONFIG_SYSCTL */
419 420  
420 421 static int __init nf_conntrack_standalone_init(void)
... ... @@ -489,74 +490,5 @@
489 490 void need_conntrack(void)
490 491 {
491 492 }
492   -
493   -#ifdef CONFIG_NF_CONNTRACK_EVENTS
494   -EXPORT_SYMBOL_GPL(nf_conntrack_chain);
495   -EXPORT_SYMBOL_GPL(nf_conntrack_expect_chain);
496   -EXPORT_SYMBOL_GPL(nf_conntrack_register_notifier);
497   -EXPORT_SYMBOL_GPL(nf_conntrack_unregister_notifier);
498   -EXPORT_SYMBOL_GPL(__nf_ct_event_cache_init);
499   -EXPORT_PER_CPU_SYMBOL_GPL(nf_conntrack_ecache);
500   -EXPORT_SYMBOL_GPL(nf_ct_deliver_cached_events);
501   -#endif
502   -EXPORT_SYMBOL(nf_ct_l3proto_try_module_get);
503   -EXPORT_SYMBOL(nf_ct_l3proto_module_put);
504   -EXPORT_SYMBOL(nf_conntrack_l3proto_register);
505   -EXPORT_SYMBOL(nf_conntrack_l3proto_unregister);
506   -EXPORT_SYMBOL(nf_conntrack_l4proto_register);
507   -EXPORT_SYMBOL(nf_conntrack_l4proto_unregister);
508   -EXPORT_SYMBOL(nf_ct_invert_tuplepr);
509   -EXPORT_SYMBOL(nf_conntrack_destroyed);
510   -EXPORT_SYMBOL(need_conntrack);
511   -EXPORT_SYMBOL(nf_conntrack_helper_register);
512   -EXPORT_SYMBOL(nf_conntrack_helper_unregister);
513   -EXPORT_SYMBOL(nf_ct_iterate_cleanup);
514   -EXPORT_SYMBOL(__nf_ct_refresh_acct);
515   -EXPORT_SYMBOL(nf_ct_protos);
516   -EXPORT_SYMBOL(__nf_ct_l4proto_find);
517   -EXPORT_SYMBOL(nf_ct_l4proto_find_get);
518   -EXPORT_SYMBOL(nf_ct_l4proto_put);
519   -EXPORT_SYMBOL(nf_ct_l3proto_find_get);
520   -EXPORT_SYMBOL(nf_ct_l3proto_put);
521   -EXPORT_SYMBOL(nf_ct_l3protos);
522   -EXPORT_SYMBOL_GPL(nf_conntrack_checksum);
523   -EXPORT_SYMBOL(nf_conntrack_expect_alloc);
524   -EXPORT_SYMBOL(nf_conntrack_expect_put);
525   -EXPORT_SYMBOL(nf_conntrack_expect_related);
526   -EXPORT_SYMBOL(nf_conntrack_unexpect_related);
527   -EXPORT_SYMBOL(nf_conntrack_tuple_taken);
528   -EXPORT_SYMBOL(nf_conntrack_htable_size);
529   -EXPORT_SYMBOL(nf_conntrack_lock);
530   -EXPORT_SYMBOL(nf_conntrack_hash);
531   -EXPORT_SYMBOL(nf_conntrack_untracked);
532   -EXPORT_SYMBOL_GPL(nf_conntrack_find_get);
533   -#ifdef CONFIG_NF_NAT_NEEDED
534   -EXPORT_SYMBOL(nf_conntrack_tcp_update);
535   -EXPORT_SYMBOL(nf_conntrack_register_cache);
536   -EXPORT_SYMBOL(nf_conntrack_unregister_cache);
537   -EXPORT_SYMBOL(nf_conntrack_alter_reply);
538   -#endif
539   -EXPORT_SYMBOL(__nf_conntrack_confirm);
540   -EXPORT_SYMBOL(nf_ct_get_tuple);
541   -EXPORT_SYMBOL(nf_ct_invert_tuple);
542   -EXPORT_SYMBOL(nf_conntrack_in);
543   -EXPORT_SYMBOL(__nf_conntrack_attach);
544   -EXPORT_SYMBOL(nf_conntrack_alloc);
545   -EXPORT_SYMBOL(nf_conntrack_free);
546   -EXPORT_SYMBOL(nf_conntrack_flush);
547   -EXPORT_SYMBOL(nf_ct_remove_expectations);
548   -EXPORT_SYMBOL(nf_ct_helper_find_get);
549   -EXPORT_SYMBOL(nf_ct_helper_put);
550   -EXPORT_SYMBOL(__nf_conntrack_helper_find_byname);
551   -EXPORT_SYMBOL(__nf_conntrack_find);
552   -EXPORT_SYMBOL(nf_ct_unlink_expect);
553   -EXPORT_SYMBOL(nf_conntrack_hash_insert);
554   -EXPORT_SYMBOL(__nf_conntrack_expect_find);
555   -EXPORT_SYMBOL(nf_conntrack_expect_find_get);
556   -EXPORT_SYMBOL(nf_conntrack_expect_list);
557   -#if defined(CONFIG_NF_CT_NETLINK) || \
558   - defined(CONFIG_NF_CT_NETLINK_MODULE)
559   -EXPORT_SYMBOL(nf_ct_port_tuple_to_nfattr);
560   -EXPORT_SYMBOL(nf_ct_port_nfattr_to_tuple);
561   -#endif
  493 +EXPORT_SYMBOL_GPL(need_conntrack);