Message ID | 20240319093405.39833-3-manojkiran.eda@gmail.com |
---|---|
State | New |
Headers | show |
Series | Add eSPI device driver (flash channel) | expand |
Hi, krzysztof.kozlowski@linaro.org wrote on Tue, 19 Mar 2024 10:51:00 +0100: > On 19/03/2024 10:34, Manojkiran Eda wrote: > > While engaged in development on the espi kernel device driver[1], > > I noticed that the espi flash driver, utilizing the mtd subsystem, > > appears to initialize before the mtdcore subsystem registers the > > NAK > > You incorrectly ordered your call, so now to fix this you incorrectly > re-order rest of kernel. No. Fix your code to handle modules, probe > deferrals and device links. Agreed. You shall not need this. Maybe just moving the driver to the right location (spi) might fix it. Thanks, Miquèl
diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c index e451b28840d5..cc51c9fb2c1e 100644 --- a/drivers/mtd/mtdcore.c +++ b/drivers/mtd/mtdcore.c @@ -2560,7 +2560,7 @@ static void __exit cleanup_mtd(void) idr_destroy(&mtd_idr); } -module_init(init_mtd); +subsys_initcall(init_mtd); module_exit(cleanup_mtd); MODULE_LICENSE("GPL");
While engaged in development on the espi kernel device driver[1], I noticed that the espi flash driver, utilizing the mtd subsystem, appears to initialize before the mtdcore subsystem registers the mtd_class. As a result, although the mtd device for espi is created, it does not populate within the /sys/class/mtd hierarchy. Given that mtd serves as a subsystem upon which numerous other drivers rely for infrastructure, it appears logical to adjust the module_init() call to an alternative priority initcall, subsys_initcall(), thereby ensuring that the mtd core subsystem is probed prior to the drivers utilizing its infrastructure. Although this adjustment alters the initialization ordering, there exists a slight risk of uncovering implicit initialization ordering issues. However, I believe it is preferable to prioritize it reasonably rather than having module_init() in order to maintain the exact old ordering. Link : [1] https://lore.kernel.org/openbmc/20240213-espi_driver-v1-1-92741c812843@gmail.com Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com> --- drivers/mtd/mtdcore.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)