Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

cxl: Adjust the startup priority of cxl_pmem to be higher than that of cxl_acpi

During the cxl_acpi probe process, it checks whether the cxl_nvb device
and driver have been attached. Currently, the startup priority of the
cxl_pmem driver is lower than that of the cxl_acpi driver. At this point,
the cxl_nvb driver has not yet been registered on the cxl_bus, causing
the attachment check to fail. This results in a failure to add the root
nvdimm bridge, leading to a cxl_acpi probe failure and ultimately
affecting the subsequent loading of cxl drivers. As a consequence, only
one mem device object exists on the cxl_bus, while the cxl_port device
objects and decoder device objects are missing.

The solution is to raise the startup priority of cxl_pmem to be higher
than that of cxl_acpi, ensuring that the cxl_pmem driver is registered
before the aforementioned attachment check occurs.

Co-developed-by: Wang Yinfeng <wangyinfeng@phytium.com.cn>
Signed-off-by: Wang Yinfeng <wangyinfeng@phytium.com.cn>
Signed-off-by: Cui Chao <cuichao1753@phytium.com.cn>
Fixes: e7e222ad73d9 ("cxl: Move devm_cxl_add_nvdimm_bridge() to cxl_pmem.ko")
Reviewed-by: Dan Williams <dan.j.williams@intel.com>
Link: https://patch.msgid.link/20260319074535.1709250-1-cuichao1753@phytium.com.cn
Signed-off-by: Dave Jiang <dave.jiang@intel.com>

authored by

Cui Chao and committed by
Dave Jiang
be5c5280 9a6a2091

+1 -1
+1 -1
drivers/cxl/pmem.c
··· 554 554 555 555 MODULE_DESCRIPTION("CXL PMEM: Persistent Memory Support"); 556 556 MODULE_LICENSE("GPL v2"); 557 - module_init(cxl_pmem_init); 557 + subsys_initcall(cxl_pmem_init); 558 558 module_exit(cxl_pmem_exit); 559 559 MODULE_IMPORT_NS("CXL"); 560 560 MODULE_ALIAS_CXL(CXL_DEVICE_NVDIMM_BRIDGE);