aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorPatrick McHardy <kaber@trash.net>2007-02-12 14:14:28 -0500
committerDavid S. Miller <davem@davemloft.net>2007-02-12 14:14:28 -0500
commitfe3eb20c1ace69e42e6ebf2afd2a904b2ae85cde (patch)
tree6c49ee94bc60c668aa3f02aa029e167f6669e031 /net
parent982d9a9ce389c396bc83ce29d799937f379ddcb7 (diff)
[NETFILTER]: nf_conntrack: change nf_conntrack_l[34]proto_unregister to void
No caller checks the return value, and since its usually called within the module unload path there's nothing a module could do about errors anyway, so BUG on invalid conditions and return void. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r--net/netfilter/nf_conntrack_proto.c40
1 files changed, 7 insertions, 33 deletions
diff --git a/net/netfilter/nf_conntrack_proto.c b/net/netfilter/nf_conntrack_proto.c
index 4dab3fa6e2bc..456155f05c75 100644
--- a/net/netfilter/nf_conntrack_proto.c
+++ b/net/netfilter/nf_conntrack_proto.c
@@ -215,22 +215,12 @@ out:
215} 215}
216EXPORT_SYMBOL_GPL(nf_conntrack_l3proto_register); 216EXPORT_SYMBOL_GPL(nf_conntrack_l3proto_register);
217 217
218int nf_conntrack_l3proto_unregister(struct nf_conntrack_l3proto *proto) 218void nf_conntrack_l3proto_unregister(struct nf_conntrack_l3proto *proto)
219{ 219{
220 int ret = 0; 220 BUG_ON(proto->l3proto >= AF_MAX);
221
222 if (proto->l3proto >= AF_MAX) {
223 ret = -EBUSY;
224 goto out;
225 }
226 221
227 write_lock_bh(&nf_conntrack_lock); 222 write_lock_bh(&nf_conntrack_lock);
228 if (nf_ct_l3protos[proto->l3proto] != proto) { 223 BUG_ON(nf_ct_l3protos[proto->l3proto] != proto);
229 write_unlock_bh(&nf_conntrack_lock);
230 ret = -EBUSY;
231 goto out;
232 }
233
234 rcu_assign_pointer(nf_ct_l3protos[proto->l3proto], 224 rcu_assign_pointer(nf_ct_l3protos[proto->l3proto],
235 &nf_conntrack_l3proto_generic); 225 &nf_conntrack_l3proto_generic);
236 write_unlock_bh(&nf_conntrack_lock); 226 write_unlock_bh(&nf_conntrack_lock);
@@ -240,9 +230,6 @@ int nf_conntrack_l3proto_unregister(struct nf_conntrack_l3proto *proto)
240 230
241 /* Remove all contrack entries for this protocol */ 231 /* Remove all contrack entries for this protocol */
242 nf_ct_iterate_cleanup(kill_l3proto, proto); 232 nf_ct_iterate_cleanup(kill_l3proto, proto);
243
244out:
245 return ret;
246} 233}
247EXPORT_SYMBOL_GPL(nf_conntrack_l3proto_unregister); 234EXPORT_SYMBOL_GPL(nf_conntrack_l3proto_unregister);
248 235
@@ -368,27 +355,17 @@ out:
368} 355}
369EXPORT_SYMBOL_GPL(nf_conntrack_l4proto_register); 356EXPORT_SYMBOL_GPL(nf_conntrack_l4proto_register);
370 357
371int nf_conntrack_l4proto_unregister(struct nf_conntrack_l4proto *l4proto) 358void nf_conntrack_l4proto_unregister(struct nf_conntrack_l4proto *l4proto)
372{ 359{
373 int ret = 0; 360 BUG_ON(l4proto->l3proto >= PF_MAX);
374
375 if (l4proto->l3proto >= PF_MAX) {
376 ret = -EBUSY;
377 goto out;
378 }
379 361
380 if (l4proto == &nf_conntrack_l4proto_generic) { 362 if (l4proto == &nf_conntrack_l4proto_generic) {
381 nf_ct_l4proto_unregister_sysctl(l4proto); 363 nf_ct_l4proto_unregister_sysctl(l4proto);
382 goto out; 364 return;
383 } 365 }
384 366
385 write_lock_bh(&nf_conntrack_lock); 367 write_lock_bh(&nf_conntrack_lock);
386 if (nf_ct_protos[l4proto->l3proto][l4proto->l4proto] 368 BUG_ON(nf_ct_protos[l4proto->l3proto][l4proto->l4proto] != l4proto);
387 != l4proto) {
388 write_unlock_bh(&nf_conntrack_lock);
389 ret = -EBUSY;
390 goto out;
391 }
392 rcu_assign_pointer(nf_ct_protos[l4proto->l3proto][l4proto->l4proto], 369 rcu_assign_pointer(nf_ct_protos[l4proto->l3proto][l4proto->l4proto],
393 &nf_conntrack_l4proto_generic); 370 &nf_conntrack_l4proto_generic);
394 write_unlock_bh(&nf_conntrack_lock); 371 write_unlock_bh(&nf_conntrack_lock);
@@ -398,8 +375,5 @@ int nf_conntrack_l4proto_unregister(struct nf_conntrack_l4proto *l4proto)
398 375
399 /* Remove all contrack entries for this protocol */ 376 /* Remove all contrack entries for this protocol */
400 nf_ct_iterate_cleanup(kill_l4proto, l4proto); 377 nf_ct_iterate_cleanup(kill_l4proto, l4proto);
401
402out:
403 return ret;
404} 378}
405EXPORT_SYMBOL_GPL(nf_conntrack_l4proto_unregister); 379EXPORT_SYMBOL_GPL(nf_conntrack_l4proto_unregister);