Re: [PATCH] bnx2x: add a separate GENEVE Kconfig symbol
From: David Miller <davem@davemloft.net>
Date: 2016-02-25 03:49:24
Also in:
linux-arm-kernel, lkml
From: Yuval Mintz <redacted> Date: Tue, 23 Feb 2016 18:33:10 +0000
quoted
When CONFIG_GENEVE is built as a loadable module, and bnx2x is built-in, we get this link error:quoted
drivers/net/built-in.o: In function `bnx2x_open': :(.text+0x33322): undefined reference to `geneve_get_rx_port' drivers/net/built-in.o: In function `bnx2x_sp_rtnl_task': :(.text+0x3e632): undefined reference to `geneve_get_rx_port'quoted
This avoids the problem by adding a separate Kconfig symbol named CONFIG_BNX2X_GENEVE that is only enabled when the code is reachable from the driver.quoted
This is the same trick that BNX2X does for VXLAN support, and is similar to how I40E handles both.quoted
Signed-off-by: Arnd Bergmann <arnd@arndb.de> Fixes: 883ce97d25b0 ("bnx2x: Add Geneve inner-RSS support")Ouch. Thanks for fixing this one; I tried avoiding this solution since I don't think there's any reason to encumber the config file with needless options [I.e., what's the gain in the ability to disable a single offloaded protocol on a single network driver?], but obviously, I botched the job. BTW, if you want to handle this exactly like vxlan, you might consider using `defined(CONFIG_BNX2X_GENEVE)' instead of `IS_ENABLED(CONFIG_BNX2X_GENEVE)' [It not a tristate]. But that's truly insignificant. Acked-By: Yuval Mintz <redacted>
Applied, thanks everyone.