diff options
Diffstat (limited to 'net/bridge')
-rw-r--r-- | net/bridge/br_netfilter.c | 2 | ||||
-rw-r--r-- | net/bridge/netfilter/Kconfig | 1 | ||||
-rw-r--r-- | net/bridge/netfilter/ebtables.c | 15 |
3 files changed, 5 insertions, 13 deletions
diff --git a/net/bridge/br_netfilter.c b/net/bridge/br_netfilter.c index a4abed5b4c44..fa5cda4e552a 100644 --- a/net/bridge/br_netfilter.c +++ b/net/bridge/br_netfilter.c | |||
@@ -719,7 +719,7 @@ static unsigned int br_nf_forward_arp(unsigned int hook, struct sk_buff *skb, | |||
719 | return NF_ACCEPT; | 719 | return NF_ACCEPT; |
720 | } | 720 | } |
721 | *d = (struct net_device *)in; | 721 | *d = (struct net_device *)in; |
722 | NF_HOOK(NF_ARP, NF_ARP_FORWARD, skb, (struct net_device *)in, | 722 | NF_HOOK(NFPROTO_ARP, NF_ARP_FORWARD, skb, (struct net_device *)in, |
723 | (struct net_device *)out, br_nf_forward_finish); | 723 | (struct net_device *)out, br_nf_forward_finish); |
724 | 724 | ||
725 | return NF_STOLEN; | 725 | return NF_STOLEN; |
diff --git a/net/bridge/netfilter/Kconfig b/net/bridge/netfilter/Kconfig index 366d3e9d51f8..ba6f73eb06c6 100644 --- a/net/bridge/netfilter/Kconfig +++ b/net/bridge/netfilter/Kconfig | |||
@@ -4,6 +4,7 @@ | |||
4 | 4 | ||
5 | menuconfig BRIDGE_NF_EBTABLES | 5 | menuconfig BRIDGE_NF_EBTABLES |
6 | tristate "Ethernet Bridge tables (ebtables) support" | 6 | tristate "Ethernet Bridge tables (ebtables) support" |
7 | depends on BRIDGE && BRIDGE_NETFILTER | ||
7 | select NETFILTER_XTABLES | 8 | select NETFILTER_XTABLES |
8 | help | 9 | help |
9 | ebtables is a general, extensible frame/packet identification | 10 | ebtables is a general, extensible frame/packet identification |
diff --git a/net/bridge/netfilter/ebtables.c b/net/bridge/netfilter/ebtables.c index 5bb88eb0aad4..0fa208e86405 100644 --- a/net/bridge/netfilter/ebtables.c +++ b/net/bridge/netfilter/ebtables.c | |||
@@ -305,23 +305,14 @@ find_inlist_lock_noload(struct list_head *head, const char *name, int *error, | |||
305 | return NULL; | 305 | return NULL; |
306 | } | 306 | } |
307 | 307 | ||
308 | #ifndef CONFIG_KMOD | ||
309 | #define find_inlist_lock(h,n,p,e,m) find_inlist_lock_noload((h),(n),(e),(m)) | ||
310 | #else | ||
311 | static void * | 308 | static void * |
312 | find_inlist_lock(struct list_head *head, const char *name, const char *prefix, | 309 | find_inlist_lock(struct list_head *head, const char *name, const char *prefix, |
313 | int *error, struct mutex *mutex) | 310 | int *error, struct mutex *mutex) |
314 | { | 311 | { |
315 | void *ret; | 312 | return try_then_request_module( |
316 | 313 | find_inlist_lock_noload(head, name, error, mutex), | |
317 | ret = find_inlist_lock_noload(head, name, error, mutex); | 314 | "%s%s", prefix, name); |
318 | if (!ret) { | ||
319 | request_module("%s%s", prefix, name); | ||
320 | ret = find_inlist_lock_noload(head, name, error, mutex); | ||
321 | } | ||
322 | return ret; | ||
323 | } | 315 | } |
324 | #endif | ||
325 | 316 | ||
326 | static inline struct ebt_table * | 317 | static inline struct ebt_table * |
327 | find_table_lock(const char *name, int *error, struct mutex *mutex) | 318 | find_table_lock(const char *name, int *error, struct mutex *mutex) |