Subject: Re: [bug, -git] ERROR: "ebt_unregister_table" [net/bridge/netfilter/ebtable_nat.ko] undefined

From: Patrick McHardy <[email-masked]>
Date: Tue, 14 Oct 2008 13:00:09 +0200

Ingo Molnar wrote:
> i think you misunderstood my report. This is about latest upstream -git 
> being broken:
> 
> ERROR: "ebt_register_table" [net/bridge/netfilter/ebtable_filter.ko] undefined!
> ERROR: "ebt_do_table" [net/bridge/netfilter/ebtable_filter.ko] undefined!
> ERROR: "ebt_unregister_table" [net/bridge/netfilter/ebtable_filter.ko] undefined!
> ERROR: "ebt_register_table" [net/bridge/netfilter/ebtable_broute.ko] undefined!
> ERROR: "ebt_do_table" [net/bridge/netfilter/ebtable_broute.ko] undefined!
> ERROR: "ebt_unregister_table" [net/bridge/netfilter/ebtable_broute.ko] undefined!
> make[1]: *** [__modpost] Error 1
> make: *** [modules] Error 2
> 
> i posted to this thread because i wanted to find a relevant context. 
> (but probably is not)
> 
> Anyway, i started a new thread for this.
> 
> the dependencies there look pretty complex so i did not find a quick fix 
> - but i can test patches.

This appears to be caused by Jan's Kconfig changes to use menuconfig,
which lost a dependency on BRIDGE:

-menu "Bridge: Netfilter Configuration"
-       depends on BRIDGE && BRIDGE_NETFILTER
-
-config BRIDGE_NF_EBTABLES
+menuconfig BRIDGE_NF_EBTABLES
         tristate "Ethernet Bridge tables (ebtables) support"
         select NETFILTER_XTABLES
         help
           ebtables is a general, extensible frame/packet identification
           framework. Say 'Y' or 'M' here if you want to do Ethernet
           filtering/NAT/brouting on the Ethernet bridge.

Does this patch fix it?
diff --git a/net/bridge/netfilter/Kconfig b/net/bridge/netfilter/Kconfig
index 366d3e9..ba6f73e 100644
--- a/net/bridge/netfilter/Kconfig
+++ b/net/bridge/netfilter/Kconfig
@@ -4,6 +4,7 @@
 
 menuconfig BRIDGE_NF_EBTABLES
 	tristate "Ethernet Bridge tables (ebtables) support"
+	depends on BRIDGE && BRIDGE_NETFILTER
 	select NETFILTER_XTABLES
 	help
 	  ebtables is a general, extensible frame/packet identification