Message ID | 20230414080329.76176-1-arnd@kernel.org (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | firmware_loader: rework crypto dependencies | expand |
On Fri, Apr 14, 2023 at 10:03:07AM +0200, Arnd Bergmann wrote: > From: Arnd Bergmann <arnd@arndb.de> > > The crypto dependencies for the firmwware loader are incomplete, > in particular a built-in FW_LOADER fails to link against a modular > crypto hash driver: > > ld.lld: error: undefined symbol: crypto_alloc_shash > ld.lld: error: undefined symbol: crypto_shash_digest > ld.lld: error: undefined symbol: crypto_destroy_tfm > >>> referenced by main.c > >>> drivers/base/firmware_loader/main.o:(fw_log_firmware_info) in archive vmlinux.a > > Rework this to use the usual 'select' from the driver module, > to respect the built-in vs module dependencies, and add a > more verbose crypto dependency to the debug option to prevent > configurations that lead to a link failure. > > Fixes: 02fe26f25325 ("firmware_loader: Add debug message with checksum for FW file") > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > --- > Tested on a few hundred randconfig builds > --- > drivers/base/firmware_loader/Kconfig | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) Acked-by: Herbert Xu <herbert@gondor.apana.org.au> Thanks,
On 4/14/2023 10:03 AM, Arnd Bergmann wrote: > From: Arnd Bergmann <arnd@arndb.de> > > The crypto dependencies for the firmwware loader are incomplete, > in particular a built-in FW_LOADER fails to link against a modular > crypto hash driver: > > ld.lld: error: undefined symbol: crypto_alloc_shash > ld.lld: error: undefined symbol: crypto_shash_digest > ld.lld: error: undefined symbol: crypto_destroy_tfm >>>> referenced by main.c >>>> drivers/base/firmware_loader/main.o:(fw_log_firmware_info) in archive vmlinux.a > > Rework this to use the usual 'select' from the driver module, > to respect the built-in vs module dependencies, and add a > more verbose crypto dependency to the debug option to prevent > configurations that lead to a link failure. > > Fixes: 02fe26f25325 ("firmware_loader: Add debug message with checksum for FW file") > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > --- > Tested on a few hundred randconfig builds > --- When I thought I've tested all combinations... ;) Thanks! Reviewed-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
On Fri, Apr 14, 2023 at 10:03:07AM +0200, Arnd Bergmann wrote: > From: Arnd Bergmann <arnd@arndb.de> > > The crypto dependencies for the firmwware loader are incomplete, > in particular a built-in FW_LOADER fails to link against a modular > crypto hash driver: > > ld.lld: error: undefined symbol: crypto_alloc_shash > ld.lld: error: undefined symbol: crypto_shash_digest > ld.lld: error: undefined symbol: crypto_destroy_tfm > >>> referenced by main.c > >>> drivers/base/firmware_loader/main.o:(fw_log_firmware_info) in archive vmlinux.a > > Rework this to use the usual 'select' from the driver module, > to respect the built-in vs module dependencies, and add a > more verbose crypto dependency to the debug option to prevent > configurations that lead to a link failure. > > Fixes: 02fe26f25325 ("firmware_loader: Add debug message with checksum for FW file") > Signed-off-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Luis Chamberlain <mcgrof@kernel.org> Luis
diff --git a/drivers/base/firmware_loader/Kconfig b/drivers/base/firmware_loader/Kconfig index 0cabc783d67a..5ca00e02fe82 100644 --- a/drivers/base/firmware_loader/Kconfig +++ b/drivers/base/firmware_loader/Kconfig @@ -3,6 +3,8 @@ menu "Firmware loader" config FW_LOADER tristate "Firmware loading facility" if EXPERT + select CRYPTO_HASH if FW_LOADER_DEBUG + select CRYPTO_SHA256 if FW_LOADER_DEBUG default y help This enables the firmware loading facility in the kernel. The kernel @@ -26,10 +28,9 @@ config FW_LOADER config FW_LOADER_DEBUG bool "Log filenames and checksums for loaded firmware" + depends on CRYPTO = FW_LOADER || CRYPTO=y depends on DYNAMIC_DEBUG depends on FW_LOADER - depends on CRYPTO - depends on CRYPTO_SHA256 default FW_LOADER help Select this option to use dynamic debug to log firmware filenames and