[PATCH] fpga: dfl: use subsys_initcall to allow built-in drivers to be added

Thadeu Lima de Souza Cascardo posted 1 patch 1 month, 3 weeks ago
drivers/fpga/dfl.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] fpga: dfl: use subsys_initcall to allow built-in drivers to be added
Posted by Thadeu Lima de Souza Cascardo 1 month, 3 weeks ago
The dfl code adds a bus. If it is built-in and there is a built-in driver
as well, the dfl module_init may be called after the driver module_init,
leading to a failure to register the driver as the bus has not been added
yet.

Use subsys_initcall, which guarantees it will be called before the drivers
init code.

Without the fix, we see failures like this:

[    0.479475] Driver 'intel-m10-bmc' was unable to register with bus_type 'dfl' because the bus was not initialized.

Fixes: 9ba3a0aa09fe ("fpga: dfl: create a dfl bus type to support DFL devices")
Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
---
 drivers/fpga/dfl.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/fpga/dfl.c b/drivers/fpga/dfl.c
index 7022657243c0a72bda2013386c66fb8bafe4b380..449c3a082e232b2814c136c7b2f36e75f2ba1aa3 100644
--- a/drivers/fpga/dfl.c
+++ b/drivers/fpga/dfl.c
@@ -2018,7 +2018,7 @@ static void __exit dfl_fpga_exit(void)
 	bus_unregister(&dfl_bus_type);
 }
 
-module_init(dfl_fpga_init);
+subsys_initcall(dfl_fpga_init);
 module_exit(dfl_fpga_exit);
 
 MODULE_DESCRIPTION("FPGA Device Feature List (DFL) Support");

---
base-commit: 8f0b4cce4481fb22653697cced8d0d04027cb1e8
change-id: 20251215-dfl_subsys-d37c77285572

Best regards,
-- 
Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
Re: [PATCH] fpga: dfl: use subsys_initcall to allow built-in drivers to be added
Posted by Xu Yilun 1 month, 2 weeks ago
On Mon, Dec 15, 2025 at 04:05:50PM -0300, Thadeu Lima de Souza Cascardo wrote:
> The dfl code adds a bus. If it is built-in and there is a built-in driver
> as well, the dfl module_init may be called after the driver module_init,
> leading to a failure to register the driver as the bus has not been added
> yet.
> 
> Use subsys_initcall, which guarantees it will be called before the drivers
> init code.
> 
> Without the fix, we see failures like this:
> 
> [    0.479475] Driver 'intel-m10-bmc' was unable to register with bus_type 'dfl' because the bus was not initialized.
> 
> Fixes: 9ba3a0aa09fe ("fpga: dfl: create a dfl bus type to support DFL devices")

I will add:

 Cc: stable@vger.kernel.org

> Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>

Reviewed-by: Xu Yilun <yilun.xu@intel.com>

Applied to for-next, thanks.