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)
commitb20633bf4490000699125b110d987303368f1040
tree0104d677aa81bbec18194ef0a7b0612b94206cdc
parent57f3c8dbf0109a36a4131d87942c61f7b21a8950
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>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@43419 3c298f89-4303-0410-b956-a3cf2f4a3e73
target/linux/generic/patches-3.18/644-bridge_optimize_netfilter_hooks.patch