Since recently the multicast optimizations are using functions from the bridge module. If batman-adv is a kernel built-in, then these bridge functions need to be accessible immediately. Thus adding a Kconfig dependency for the multicast optimizations to depend on batman-adv being built as a module if the bridge is built as a module, too.
This fixes build errors like the following:
~~~ net/built-in.o: In function `batadv_mcast_mla_update':
(.text+0x19b7eb): undefined reference to `br_multicast_has_querier_anywhere'
net/built-in.o: In function `batadv_mcast_mla_update':
(.text+0x19b7fa): undefined reference to `br_multicast_has_querier_adjacent'
net/built-in.o: In function `batadv_mcast_mla_update': (.text+0x19b809): undefined reference to `br_multicast_has_querier_anywhere' net/built-in.o: In function `batadv_mcast_mla_update': (.text+0x19b818): undefined reference to `br_multicast_has_querier_adjacent' net/built-in.o: In function `batadv_mcast_mla_update':
(.text+0x19b8cf): undefined reference to `br_multicast_list_adjacent'
~~~
Fixes: 391b59cdb111 ("batman-adv: Add multicast optimization support for bridged setups") Reported-by: kbuild test robot fengguang.wu@intel.com Signed-off-by: Linus Lüssing linus.luessing@c0d3.blue --- net/batman-adv/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/batman-adv/Kconfig b/net/batman-adv/Kconfig index b7ba97d..833bb14 100644 --- a/net/batman-adv/Kconfig +++ b/net/batman-adv/Kconfig @@ -66,7 +66,7 @@ config BATMAN_ADV_NC
config BATMAN_ADV_MCAST bool "Multicast optimisation" - depends on BATMAN_ADV && INET + depends on BATMAN_ADV && INET && !(BRIDGE=m && BATMAN_ADV=y) default n help This option enables the multicast optimisation which aims to
https://lists.01.org/pipermail/kbuild-all/2016-June/021435.html
----- Forwarded message from kbuild test robot fengguang.wu@intel.com -----
Date: Thu, 30 Jun 2016 01:00:47 +0800 From: kbuild test robot fengguang.wu@intel.com Cc: kbuild-all@01.org, Simon Wunderlich sw@simonwunderlich.de, Linus Lüssing linus.luessing@c0d3.blue, Marek Lindner mareklindner@neomailbox.ch Subject: [batman:batman-adv/next 15/28] undefined reference to `br_multicast_has_querier_anywhere'
tree: git://git.open-mesh.org/linux-merge batman-adv/next head: a43fbc01d3f5ef77cab5625f26fa3740229ecf63 commit: 339339cb691ce0318b236cb245a0fdbface88b39 [15/28] batman-adv: Add multicast optimization support for bridged setups config: i386-randconfig-h0-06292136 (attached as .config) compiler: gcc-6 (Debian 6.1.1-1) 6.1.1 20160430 reproduce: git checkout 339339cb691ce0318b236cb245a0fdbface88b39 # save the attached .config to linux build tree make ARCH=i386
All errors (new ones prefixed by >>):
net/built-in.o: In function `batadv_mcast_mla_update':
(.text+0x19b7eb): undefined reference to `br_multicast_has_querier_anywhere'
net/built-in.o: In function `batadv_mcast_mla_update':
(.text+0x19b7fa): undefined reference to `br_multicast_has_querier_adjacent'
net/built-in.o: In function `batadv_mcast_mla_update': (.text+0x19b809): undefined reference to `br_multicast_has_querier_anywhere' net/built-in.o: In function `batadv_mcast_mla_update': (.text+0x19b818): undefined reference to `br_multicast_has_querier_adjacent' net/built-in.o: In function `batadv_mcast_mla_update':
(.text+0x19b8cf): undefined reference to `br_multicast_list_adjacent'
--- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
----- End forwarded message -----
On Thursday 30 June 2016 10:09:25 Linus Lüssing wrote:
Since recently the multicast optimizations are using functions from the bridge module. If batman-adv is a kernel built-in, then these bridge functions need to be accessible immediately. Thus adding a Kconfig dependency for the multicast optimizations to depend on batman-adv being built as a module if the bridge is built as a module, too.
[...]
config BATMAN_ADV_MCAST bool "Multicast optimisation"
- depends on BATMAN_ADV && INET
- depends on BATMAN_ADV && INET && !(BRIDGE=m && BATMAN_ADV=y) default n help This option enables the multicast optimisation which aims to
The used functions are provided via stubs in include/linux/if_bridge.h when bridge is disabled. So the symbols are only missing when the batman-adv code is compiled as part of the kernel but the bridge code is compiled as modules. So this change seems to make sense.
Reviewed-by: Sven Eckelmann sven@narfation.org
It is now part of the linux-merge.git.
Kind regards, Sven
On Thursday, June 30, 2016 16:00:10 Sven Eckelmann wrote:
On Thursday 30 June 2016 10:09:25 Linus Lüssing wrote:
Since recently the multicast optimizations are using functions from the bridge module. If batman-adv is a kernel built-in, then these bridge functions need to be accessible immediately. Thus adding a Kconfig dependency for the multicast optimizations to depend on batman-adv being built as a module if the bridge is built as a module, too.
[...]
config BATMAN_ADV_MCAST bool "Multicast optimisation"
depends on BATMAN_ADV && INET
depends on BATMAN_ADV && INET && !(BRIDGE=m && BATMAN_ADV=y) default n help This option enables the multicast optimisation which aims to
The used functions are provided via stubs in include/linux/if_bridge.h when bridge is disabled. So the symbols are only missing when the batman-adv code is compiled as part of the kernel but the bridge code is compiled as modules. So this change seems to make sense.
Reviewed-by: Sven Eckelmann sven@narfation.org
Applied in revision e917bb4.
Thanks, Marek
b.a.t.m.a.n@lists.open-mesh.org