Re: [PATCH] [firmware_class] Fix compile with no builtin firmware
From: Ming Lei <tom.leiming@gmail.com>
Date: 2012-11-20 16:01:43
Also in:
lkml
On Tue, Nov 20, 2012 at 10:45 PM, Solomon Peachy [off-list ref] wrote:
When compiling the firmware loader, the builtin firmware functions were erroneously compiled as they were wrapped with CONFIG_FW_LOADER instead of CONFIG_FIRMWARE_IN_KERNEL. This is normally harmless, except when there was actually no firmware to compile into the kernel, causing the build to fail with a linking error: drivers/built-in.o: In function `release_firmware': (.text+0x192e2): undefined reference to `__end_builtin_fw' drivers/built-in.o: In function `release_firmware': (.text+0x19304): undefined reference to `__end_builtin_fw' drivers/built-in.o: In function `_request_firmware': firmware_class.c:(.text+0x1986c): undefined reference to `__end_builtin_fw' firmware_class.c:(.text+0x19886): undefined reference to `__end_builtin_fw' firmware_class.c:(.text+0x19a98): undefined reference to `__end_builtin_fw' drivers/built-in.o: In function `release_firmware': (.text+0x192dc): undefined reference to `__start_builtin_fw' drivers/built-in.o: In function `_request_firmware': firmware_class.c:(.text+0x19860): undefined reference to `__start_builtin_fw' firmware_class.c:(.text+0x19a8a): undefined reference to `__start_builtin_fw'
I have tried to reproduce the compile failure but not succeed, could you share your .config?
quoted hunk ↗ jump to hunk
This trivial patch fixes this oversight. Signed-off-by: Solomon Peachy <redacted> CC: stable@vger.kernel.org --- drivers/base/firmware_class.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)diff --git a/drivers/base/firmware_class.c b/drivers/base/firmware_class.c index 8945f4e..3474e7f 100644 --- a/drivers/base/firmware_class.c +++ b/drivers/base/firmware_class.c@@ -38,7 +38,7 @@ MODULE_LICENSE("GPL"); /* Builtin firmware support */ -#ifdef CONFIG_FW_LOADER +#ifdef CONFIG_FIRMWARE_IN_KERNEL
This might not be correct when EXTRA_FIRMWARE is set and CONFIG_FIRMWARE_IN_KERNEL is unset. Thanks, -- Ming Lei