* [PATCH v2 1/3] firmware_loader: make RUST_FW_LOADER_ABSTRACTIONS select FW_LOADER
2025-11-05 8:03 [PATCH v2 0/3] firmware_loader: make RUST_FW_LOADER_ABSTRACTIONS select FW_LOADER Alexandre Courbot
@ 2025-11-05 8:03 ` Alexandre Courbot
2025-11-05 21:47 ` kernel test robot
2025-11-06 0:23 ` Alexandre Courbot
2025-11-05 8:03 ` [PATCH v2 2/3] gpu: nova-core: select RUST_FW_LOADER_ABSTRACTIONS Alexandre Courbot
2025-11-05 8:03 ` [PATCH v2 3/3] net: phy: " Alexandre Courbot
2 siblings, 2 replies; 6+ messages in thread
From: Alexandre Courbot @ 2025-11-05 8:03 UTC (permalink / raw)
To: Luis Chamberlain, Russ Weight, Danilo Krummrich,
Greg Kroah-Hartman, Rafael J. Wysocki, Alice Ryhl, David Airlie,
Simona Vetter, Andrew Lunn, Heiner Kallweit, Russell King,
David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo,
Björn Roy Baron, Benno Lossin, Andreas Hindborg,
Trevor Gross, FUJITA Tomonori
Cc: linux-kernel, nouveau, dri-devel, netdev, rust-for-linux,
Alexandre Courbot
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
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [PATCH v2 1/3] firmware_loader: make RUST_FW_LOADER_ABSTRACTIONS select FW_LOADER
2025-11-05 8:03 ` [PATCH v2 1/3] " Alexandre Courbot
@ 2025-11-05 21:47 ` kernel test robot
2025-11-06 0:23 ` Alexandre Courbot
1 sibling, 0 replies; 6+ messages in thread
From: kernel test robot @ 2025-11-05 21:47 UTC (permalink / raw)
To: Alexandre Courbot, Luis Chamberlain, Russ Weight,
Danilo Krummrich, Greg Kroah-Hartman, Rafael J. Wysocki,
Alice Ryhl, David Airlie, Simona Vetter, Andrew Lunn,
Heiner Kallweit, Russell King, David S. Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, Miguel Ojeda, Alex Gaynor,
Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin,
Andreas Hindborg, Trevor Gross, FUJITA Tomonori
Cc: llvm, oe-kbuild-all, netdev, linux-kernel, nouveau, dri-devel,
rust-for-linux, Alexandre Courbot
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
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH v2 1/3] firmware_loader: make RUST_FW_LOADER_ABSTRACTIONS select FW_LOADER
2025-11-05 8:03 ` [PATCH v2 1/3] " Alexandre Courbot
2025-11-05 21:47 ` kernel test robot
@ 2025-11-06 0:23 ` Alexandre Courbot
1 sibling, 0 replies; 6+ messages in thread
From: Alexandre Courbot @ 2025-11-06 0:23 UTC (permalink / raw)
To: Alexandre Courbot, Luis Chamberlain, Russ Weight,
Danilo Krummrich, Greg Kroah-Hartman, Rafael J. Wysocki,
Alice Ryhl, David Airlie, Simona Vetter, Andrew Lunn,
Heiner Kallweit, Russell King, David S. Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, Miguel Ojeda, Alex Gaynor,
Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin,
Andreas Hindborg, Trevor Gross, FUJITA Tomonori
Cc: linux-kernel, nouveau, dri-devel, netdev, rust-for-linux, Nouveau
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.
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v2 2/3] gpu: nova-core: select RUST_FW_LOADER_ABSTRACTIONS
2025-11-05 8:03 [PATCH v2 0/3] firmware_loader: make RUST_FW_LOADER_ABSTRACTIONS select FW_LOADER Alexandre Courbot
2025-11-05 8:03 ` [PATCH v2 1/3] " Alexandre Courbot
@ 2025-11-05 8:03 ` Alexandre Courbot
2025-11-05 8:03 ` [PATCH v2 3/3] net: phy: " Alexandre Courbot
2 siblings, 0 replies; 6+ messages in thread
From: Alexandre Courbot @ 2025-11-05 8:03 UTC (permalink / raw)
To: Luis Chamberlain, Russ Weight, Danilo Krummrich,
Greg Kroah-Hartman, Rafael J. Wysocki, Alice Ryhl, David Airlie,
Simona Vetter, Andrew Lunn, Heiner Kallweit, Russell King,
David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo,
Björn Roy Baron, Benno Lossin, Andreas Hindborg,
Trevor Gross, FUJITA Tomonori
Cc: linux-kernel, nouveau, dri-devel, netdev, rust-for-linux,
Alexandre Courbot
RUST_FW_LOADER_ABSTRACTIONS was depended on by NOVA_CORE, but NOVA_CORE
is selected by DRM_NOVA. This creates a situation where, if DRM_NOVA is
selected, NOVA_CORE gets enabled but not RUST_FW_LOADER_ABSTRACTIONS,
which results in a build error.
Since the firmware loader is an implementation detail of the driver, it
should be enabled along with it, so change the "depends on" to a
"select".
Fixes: 54e6baf123fd ("gpu: nova-core: add initial driver stub")
Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
---
drivers/gpu/nova-core/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/nova-core/Kconfig b/drivers/gpu/nova-core/Kconfig
index 20d3e6d0d796..527920f9c4d3 100644
--- a/drivers/gpu/nova-core/Kconfig
+++ b/drivers/gpu/nova-core/Kconfig
@@ -3,7 +3,7 @@ config NOVA_CORE
depends on 64BIT
depends on PCI
depends on RUST
- depends on RUST_FW_LOADER_ABSTRACTIONS
+ select RUST_FW_LOADER_ABSTRACTIONS
select AUXILIARY_BUS
default n
help
--
2.51.2
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH v2 3/3] net: phy: select RUST_FW_LOADER_ABSTRACTIONS
2025-11-05 8:03 [PATCH v2 0/3] firmware_loader: make RUST_FW_LOADER_ABSTRACTIONS select FW_LOADER Alexandre Courbot
2025-11-05 8:03 ` [PATCH v2 1/3] " Alexandre Courbot
2025-11-05 8:03 ` [PATCH v2 2/3] gpu: nova-core: select RUST_FW_LOADER_ABSTRACTIONS Alexandre Courbot
@ 2025-11-05 8:03 ` Alexandre Courbot
2 siblings, 0 replies; 6+ messages in thread
From: Alexandre Courbot @ 2025-11-05 8:03 UTC (permalink / raw)
To: Luis Chamberlain, Russ Weight, Danilo Krummrich,
Greg Kroah-Hartman, Rafael J. Wysocki, Alice Ryhl, David Airlie,
Simona Vetter, Andrew Lunn, Heiner Kallweit, Russell King,
David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo,
Björn Roy Baron, Benno Lossin, Andreas Hindborg,
Trevor Gross, FUJITA Tomonori
Cc: linux-kernel, nouveau, dri-devel, netdev, rust-for-linux,
Alexandre Courbot
The use of firmware_loader is an implementations detail of the driver,
so it should be enabled along with it. The non-Rust option FW_LOADER is
typically selected rather than depended on, let's make the Rust
abstraction behave the same.
Fixes: fd3eaad826da ("net: phy: add Applied Micro QT2025 PHY driver")
Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
---
drivers/net/phy/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/phy/Kconfig b/drivers/net/phy/Kconfig
index 98700d069191..d4987fc6b26c 100644
--- a/drivers/net/phy/Kconfig
+++ b/drivers/net/phy/Kconfig
@@ -132,7 +132,7 @@ config ADIN1100_PHY
config AMCC_QT2025_PHY
tristate "AMCC QT2025 PHY"
depends on RUST_PHYLIB_ABSTRACTIONS
- depends on RUST_FW_LOADER_ABSTRACTIONS
+ select RUST_FW_LOADER_ABSTRACTIONS
help
Adds support for the Applied Micro Circuits Corporation QT2025 PHY.
--
2.51.2
^ permalink raw reply related [flat|nested] 6+ messages in thread