[PATCH v2 1/3] firmware_loader: make RUST_FW_LOADER_ABSTRACTIONS select FW_LOADER

Alexandre Courbot posted 3 patches 3 months ago
There is a newer version of this series
[PATCH v2 1/3] firmware_loader: make RUST_FW_LOADER_ABSTRACTIONS select FW_LOADER
Posted by Alexandre Courbot 3 months ago
The use of firmware_loader is an implementation detail of drivers rather
than a dependency. FW_LOADER is typically selected rather than depended
on; the Rust abstractions should do the same thing.

Fixes: de6582833db0 ("rust: add firmware abstractions")
Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
---
 drivers/base/firmware_loader/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/base/firmware_loader/Kconfig b/drivers/base/firmware_loader/Kconfig
index 752b9a9bea03..0e6c1343409e 100644
--- a/drivers/base/firmware_loader/Kconfig
+++ b/drivers/base/firmware_loader/Kconfig
@@ -38,7 +38,7 @@ config FW_LOADER_DEBUG
 config RUST_FW_LOADER_ABSTRACTIONS
 	bool "Rust Firmware Loader abstractions"
 	depends on RUST
-	depends on FW_LOADER=y
+	select FW_LOADER=y
 	help
 	  This enables the Rust abstractions for the firmware loader API.
 

-- 
2.51.2
Re: [PATCH v2 1/3] firmware_loader: make RUST_FW_LOADER_ABSTRACTIONS select FW_LOADER
Posted by Alexandre Courbot 3 months ago
On Wed Nov 5, 2025 at 5:03 PM JST, Alexandre Courbot wrote:
> The use of firmware_loader is an implementation detail of drivers rather
> than a dependency. FW_LOADER is typically selected rather than depended
> on; the Rust abstractions should do the same thing.
>
> Fixes: de6582833db0 ("rust: add firmware abstractions")
> Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
> ---
>  drivers/base/firmware_loader/Kconfig | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/base/firmware_loader/Kconfig b/drivers/base/firmware_loader/Kconfig
> index 752b9a9bea03..0e6c1343409e 100644
> --- a/drivers/base/firmware_loader/Kconfig
> +++ b/drivers/base/firmware_loader/Kconfig
> @@ -38,7 +38,7 @@ config FW_LOADER_DEBUG
>  config RUST_FW_LOADER_ABSTRACTIONS
>  	bool "Rust Firmware Loader abstractions"
>  	depends on RUST
> -	depends on FW_LOADER=y
> +	select FW_LOADER=y

Oops this should be `select FW_LOADER` only... respinning.
Re: [PATCH v2 1/3] firmware_loader: make RUST_FW_LOADER_ABSTRACTIONS select FW_LOADER
Posted by kernel test robot 3 months ago
Hi Alexandre,

kernel test robot noticed the following build errors:

[auto build test ERROR on 6553a8f168fb7941ae73d39eccac64f3a2b9b399]

url:    https://github.com/intel-lab-lkp/linux/commits/Alexandre-Courbot/firmware_loader-make-RUST_FW_LOADER_ABSTRACTIONS-select-FW_LOADER/20251105-160437
base:   6553a8f168fb7941ae73d39eccac64f3a2b9b399
patch link:    https://lore.kernel.org/r/20251105-b4-select-rust-fw-v2-1-156d9014ed3b%40nvidia.com
patch subject: [PATCH v2 1/3] firmware_loader: make RUST_FW_LOADER_ABSTRACTIONS select FW_LOADER
config: x86_64-kexec (attached as .config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251106/202511060527.knZk5HZP-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202511060527.knZk5HZP-lkp@intel.com/

All errors (new ones prefixed by >>):

>> drivers/base/firmware_loader/Kconfig:41: syntax error
   drivers/base/firmware_loader/Kconfig:41: invalid statement
   drivers/base/firmware_loader/Kconfig:42: invalid statement
   drivers/base/firmware_loader/Kconfig:43:warning: ignoring unsupported character '.'
   drivers/base/firmware_loader/Kconfig:43: unknown statement "This"
   make[3]: *** [scripts/kconfig/Makefile:85: oldconfig] Error 1
   make[2]: *** [Makefile:742: oldconfig] Error 2
   make[1]: *** [Makefile:248: __sub-make] Error 2
   make[1]: Target 'oldconfig' not remade because of errors.
   make: *** [Makefile:248: __sub-make] Error 2
   make: Target 'oldconfig' not remade because of errors.
--
>> drivers/base/firmware_loader/Kconfig:41: syntax error
   drivers/base/firmware_loader/Kconfig:41: invalid statement
   drivers/base/firmware_loader/Kconfig:42: invalid statement
   drivers/base/firmware_loader/Kconfig:43:warning: ignoring unsupported character '.'
   drivers/base/firmware_loader/Kconfig:43: unknown statement "This"
   make[3]: *** [scripts/kconfig/Makefile:85: olddefconfig] Error 1
   make[2]: *** [Makefile:742: olddefconfig] Error 2
   make[1]: *** [Makefile:248: __sub-make] Error 2
   make[1]: Target 'olddefconfig' not remade because of errors.
   make: *** [Makefile:248: __sub-make] Error 2
   make: Target 'olddefconfig' not remade because of errors.


vim +41 drivers/base/firmware_loader/Kconfig

     3	
     4	config FW_LOADER
     5		tristate "Firmware loading facility" if EXPERT
     6		select CRYPTO_LIB_SHA256 if FW_LOADER_DEBUG
     7		default y
     8		help
     9		  This enables the firmware loading facility in the kernel. The kernel
    10		  will first look for built-in firmware, if it has any. Next, it will
    11		  look for the requested firmware in a series of filesystem paths:
    12	
    13			o firmware_class path module parameter or kernel boot param
    14			o /lib/firmware/updates/UTS_RELEASE
    15			o /lib/firmware/updates
    16			o /lib/firmware/UTS_RELEASE
    17			o /lib/firmware
    18	
    19		  Enabling this feature only increases your kernel image by about
    20		  828 bytes, enable this option unless you are certain you don't
    21		  need firmware.
    22	
    23		  You typically want this built-in (=y) but you can also enable this
    24		  as a module, in which case the firmware_class module will be built.
    25		  You also want to be sure to enable this built-in if you are going to
    26		  enable built-in firmware (CONFIG_EXTRA_FIRMWARE).
    27	
    28	config FW_LOADER_DEBUG
    29		bool "Log filenames and checksums for loaded firmware"
    30		depends on DYNAMIC_DEBUG
    31		depends on FW_LOADER
    32		default FW_LOADER
    33		help
    34		  Select this option to use dynamic debug to log firmware filenames and
    35		  SHA256 checksums to the kernel log for each firmware file that is
    36		  loaded.
    37	
    38	config RUST_FW_LOADER_ABSTRACTIONS
    39		bool "Rust Firmware Loader abstractions"
    40		depends on RUST
  > 41		select FW_LOADER=y
    42		help
    43		  This enables the Rust abstractions for the firmware loader API.
    44	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki