Alexandre Courbot
2025-Nov-04 14:04 UTC
[PATCH] firmware_loader: make RUST_FW_LOADER_ABSTRACTIONS select FW_LOADER
I have noticed that build will fail when doing the following: - Start with the x86 defconfig, - Using nconfig, enable `CONFIG_RUST` and `CONFIG_DRM_NOVA`, - Start building. The problem is that `CONFIG_RUST_FW_LOADER_ABSTRACTIONS` remains unselected, despite it being a dependency of `CONFIG_NOVA_CORE`. This seems to happen because `CONFIG_DRM_NOVA` selects `CONFIG_NOVA_CORE`. Fix this by making `CONFIG_RUST_FW_LOADER_ABSTRACTIONS` select `CONFIG_FW_LOADER`, and by transition make all users of `CONFIG_RUST_FW_LOADER_ABSTRACTIONS` (so far, nova-core and net/phy) select it as well. `CONFIG_FW_LOADER` is more often selected than depended on, so this seems to make sense generally speaking. Signed-off-by: Alexandre Courbot <acourbot at nvidia.com> --- I am not 100% percent confident that this is the proper fix, but the problem is undeniable. :) I guess the alternative would be to make nova-drm depend on nova-core instead of selecting it, but I suspect that the `select` behavior is correct in this case - after all, firmware loading does not make sense without any user. --- drivers/base/firmware_loader/Kconfig | 2 +- drivers/gpu/nova-core/Kconfig | 2 +- drivers/net/phy/Kconfig | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/base/firmware_loader/Kconfig b/drivers/base/firmware_loader/Kconfig index 752b9a9bea03..15eff8a4b505 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 help This enables the Rust abstractions for the firmware loader API. 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 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. --- base-commit: 6553a8f168fb7941ae73d39eccac64f3a2b9b399 change-id: 20251104-b4-select-rust-fw-aeb1e46bcee9 Best regards, -- Alexandre Courbot <acourbot at nvidia.com>
Danilo Krummrich
2025-Nov-04 14:16 UTC
[PATCH] firmware_loader: make RUST_FW_LOADER_ABSTRACTIONS select FW_LOADER
On Tue Nov 4, 2025 at 3:04 PM CET, Alexandre Courbot wrote:> I have noticed that build will fail when doing the following: > > - Start with the x86 defconfig, > - Using nconfig, enable `CONFIG_RUST` and `CONFIG_DRM_NOVA`, > - Start building. > > The problem is that `CONFIG_RUST_FW_LOADER_ABSTRACTIONS` remains > unselected, despite it being a dependency of `CONFIG_NOVA_CORE`. This > seems to happen because `CONFIG_DRM_NOVA` selects `CONFIG_NOVA_CORE`. > > Fix this by making `CONFIG_RUST_FW_LOADER_ABSTRACTIONS` select > `CONFIG_FW_LOADER`, and by transition make all users of > `CONFIG_RUST_FW_LOADER_ABSTRACTIONS` (so far, nova-core and net/phy) > select it as well. > > `CONFIG_FW_LOADER` is more often selected than depended on, so this > seems to make sense generally speaking. > > Signed-off-by: Alexandre Courbot <acourbot at nvidia.com> > --- > I am not 100% percent confident that this is the proper fix, but the > problem is undeniable. :) I guess the alternative would be to make nova-drm > depend on nova-core instead of selecting it, but I suspect that the > `select` behavior is correct in this case - after all, firmware loading > does not make sense without any user.This patch is the correct approach. However, I think this should be three separate patches, so they can go through different trees. Also, please add a Fixes: tag.
Greg Kroah-Hartman
2025-Nov-04 14:35 UTC
[PATCH] firmware_loader: make RUST_FW_LOADER_ABSTRACTIONS select FW_LOADER
On Tue, Nov 04, 2025 at 11:04:49PM +0900, Alexandre Courbot wrote:> I have noticed that build will fail when doing the following: > > - Start with the x86 defconfig, > - Using nconfig, enable `CONFIG_RUST` and `CONFIG_DRM_NOVA`, > - Start building. > > The problem is that `CONFIG_RUST_FW_LOADER_ABSTRACTIONS` remains > unselected, despite it being a dependency of `CONFIG_NOVA_CORE`. This > seems to happen because `CONFIG_DRM_NOVA` selects `CONFIG_NOVA_CORE`. > > Fix this by making `CONFIG_RUST_FW_LOADER_ABSTRACTIONS` select > `CONFIG_FW_LOADER`, and by transition make all users of > `CONFIG_RUST_FW_LOADER_ABSTRACTIONS` (so far, nova-core and net/phy) > select it as well. > > `CONFIG_FW_LOADER` is more often selected than depended on, so this > seems to make sense generally speaking. > > Signed-off-by: Alexandre Courbot <acourbot at nvidia.com> > --- > I am not 100% percent confident that this is the proper fix, but the > problem is undeniable. :) I guess the alternative would be to make nova-drm > depend on nova-core instead of selecting it, but I suspect that the > `select` behavior is correct in this case - after all, firmware loading > does not make sense without any user. > --- > drivers/base/firmware_loader/Kconfig | 2 +- > drivers/gpu/nova-core/Kconfig | 2 +- > drivers/net/phy/Kconfig | 2 +- > 3 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/base/firmware_loader/Kconfig b/drivers/base/firmware_loader/Kconfig > index 752b9a9bea03..15eff8a4b505 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_LOADERPlease no, select should almost never be used, it causes hard-to-debug issues. As something is failing, perhaps another "depends" needs to be added somewhere instead? thanks, greg k-h