kernel: 3.18: Fix patch 644 dependency chain
authorFlorian Fainelli <florian@openwrt.org>
Fri, 28 Nov 2014 01:29:51 +0000 (01:29 +0000)
committerFlorian Fainelli <florian@openwrt.org>
Fri, 28 Nov 2014 01:29:51 +0000 (01:29 +0000)
commitd73dc14957000f34310b4980d95f76c60a61bee6
treeb629c60ba0ef51b116d31b9b47a6dbca4a64e31c
parent6cc4c6a3a1921ee589516094f41970f5b0d417a7
kernel: 3.18: Fix patch 644 dependency chain

This patch introduces some code that is compiled in whenever
CONFIG_BRIDGE_NETFILTER is built, with the code called from code compiled under
CONFIG_BRIDGE, CONFIG_BRIDGE_IGMP_SNOOPING or CONFIG_BRIDGE_NF_EBTABLES.

Unfortunately, these options aren't setting explicitly the dependency they now
have on CONFIG_BRIDGE_NETFILTER, for obvious reasons for CONFIG_BRIDGE.

However, this is not working really well when CONFIG_BRIDGE_NETFILTER is built
as a module, since code statically compiled will now use a function that is not
in the kernel image, which makes the linker grumpy.

Solve this by removing the option to build CONFIG_BRIDGE_NETFILTER as a module,
and protect our function definition by an IS_BUILTIN instead of a IS_ENABLED
macro. This fixes the issue for CONFIG_BRIDGE and CONFIG_BRIDGE_IGMP_SNOOPING.

Fixing CONFIG_BRIDGE_NF_EBTABLES has to be handled a bit differently, since it
directly references a variable that will not be declared if
CONFIG_BRIDGE_NETFILTER is not set. Protect the variable affectations by an
ifdef to make sure this doesn't happen.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Florian Fainelli <florian@openwrt.org>
SVN-Revision: 43419
target/linux/generic/patches-3.18/644-bridge_optimize_netfilter_hooks.patch