diff options
| -rw-r--r-- | net/bridge/netfilter/ebtable_filter.c | 18 | ||||
| -rw-r--r-- | net/bridge/netfilter/ebtable_nat.c | 18 |
2 files changed, 10 insertions, 26 deletions
diff --git a/net/bridge/netfilter/ebtable_filter.c b/net/bridge/netfilter/ebtable_filter.c index 690bc3ab186c..1a58af51a2e2 100644 --- a/net/bridge/netfilter/ebtable_filter.c +++ b/net/bridge/netfilter/ebtable_filter.c | |||
| @@ -93,28 +93,20 @@ static struct nf_hook_ops ebt_ops_filter[] __read_mostly = { | |||
| 93 | 93 | ||
| 94 | static int __init ebtable_filter_init(void) | 94 | static int __init ebtable_filter_init(void) |
| 95 | { | 95 | { |
| 96 | int i, j, ret; | 96 | int ret; |
| 97 | 97 | ||
| 98 | ret = ebt_register_table(&frame_filter); | 98 | ret = ebt_register_table(&frame_filter); |
| 99 | if (ret < 0) | 99 | if (ret < 0) |
| 100 | return ret; | 100 | return ret; |
| 101 | for (i = 0; i < ARRAY_SIZE(ebt_ops_filter); i++) | 101 | ret = nf_register_hooks(ebt_ops_filter, ARRAY_SIZE(ebt_ops_filter)); |
| 102 | if ((ret = nf_register_hook(&ebt_ops_filter[i])) < 0) | 102 | if (ret < 0) |
| 103 | goto cleanup; | 103 | ebt_unregister_table(&frame_filter); |
| 104 | return ret; | ||
| 105 | cleanup: | ||
| 106 | for (j = 0; j < i; j++) | ||
| 107 | nf_unregister_hook(&ebt_ops_filter[j]); | ||
| 108 | ebt_unregister_table(&frame_filter); | ||
| 109 | return ret; | 104 | return ret; |
| 110 | } | 105 | } |
| 111 | 106 | ||
| 112 | static void __exit ebtable_filter_fini(void) | 107 | static void __exit ebtable_filter_fini(void) |
| 113 | { | 108 | { |
| 114 | int i; | 109 | nf_unregister_hooks(ebt_ops_filter, ARRAY_SIZE(ebt_ops_filter)); |
| 115 | |||
| 116 | for (i = 0; i < ARRAY_SIZE(ebt_ops_filter); i++) | ||
| 117 | nf_unregister_hook(&ebt_ops_filter[i]); | ||
| 118 | ebt_unregister_table(&frame_filter); | 110 | ebt_unregister_table(&frame_filter); |
| 119 | } | 111 | } |
| 120 | 112 | ||
diff --git a/net/bridge/netfilter/ebtable_nat.c b/net/bridge/netfilter/ebtable_nat.c index 5b495fe2d0b6..f60c1e78e575 100644 --- a/net/bridge/netfilter/ebtable_nat.c +++ b/net/bridge/netfilter/ebtable_nat.c | |||
| @@ -100,28 +100,20 @@ static struct nf_hook_ops ebt_ops_nat[] __read_mostly = { | |||
| 100 | 100 | ||
| 101 | static int __init ebtable_nat_init(void) | 101 | static int __init ebtable_nat_init(void) |
| 102 | { | 102 | { |
| 103 | int i, ret, j; | 103 | int ret; |
| 104 | 104 | ||
| 105 | ret = ebt_register_table(&frame_nat); | 105 | ret = ebt_register_table(&frame_nat); |
| 106 | if (ret < 0) | 106 | if (ret < 0) |
| 107 | return ret; | 107 | return ret; |
| 108 | for (i = 0; i < ARRAY_SIZE(ebt_ops_nat); i++) | 108 | ret = nf_register_hooks(ebt_ops_nat, ARRAY_SIZE(ebt_ops_nat)); |
| 109 | if ((ret = nf_register_hook(&ebt_ops_nat[i])) < 0) | 109 | if (ret < 0) |
| 110 | goto cleanup; | 110 | ebt_unregister_table(&frame_nat); |
| 111 | return ret; | ||
| 112 | cleanup: | ||
| 113 | for (j = 0; j < i; j++) | ||
| 114 | nf_unregister_hook(&ebt_ops_nat[j]); | ||
| 115 | ebt_unregister_table(&frame_nat); | ||
| 116 | return ret; | 111 | return ret; |
| 117 | } | 112 | } |
| 118 | 113 | ||
| 119 | static void __exit ebtable_nat_fini(void) | 114 | static void __exit ebtable_nat_fini(void) |
| 120 | { | 115 | { |
| 121 | int i; | 116 | nf_unregister_hooks(ebt_ops_nat, ARRAY_SIZE(ebt_ops_nat)); |
| 122 | |||
| 123 | for (i = 0; i < ARRAY_SIZE(ebt_ops_nat); i++) | ||
| 124 | nf_unregister_hook(&ebt_ops_nat[i]); | ||
| 125 | ebt_unregister_table(&frame_nat); | 117 | ebt_unregister_table(&frame_nat); |
| 126 | } | 118 | } |
| 127 | 119 | ||
