Message ID | 20250310135119.4168933-1-arnd@kernel.org |
---|---|
State | New |
Headers | show |
Series | cxl: fix FWCTL dependency | expand |
On 3/10/25 6:51 AM, Arnd Bergmann wrote: > From: Arnd Bergmann <arnd@arndb.de> > > The 'FWCTL' subsystem is selected by CXL_FEATURES, which is a 'bool' symbol > with a dependency on CXL_PCI, but referenced by the cxl_core.ko. > When cxl_core is built-in, but the cxl_pci.ko driver is a loadable mdoule, > this results in a link failure: > > ld.lld-21: error: undefined symbol: _fwctl_alloc_device >>>> referenced by features.c:695 (/home/arnd/arm-soc/drivers/cxl/core/features.c:695) > ld.lld-21: error: undefined symbol: fwctl_register >>>> referenced by features.c:699 (/home/arnd/arm-soc/drivers/cxl/core/features.c:699) > ld.lld-21: error: undefined symbol: fwctl_unregister >>>> referenced by features.c:676 (/home/arnd/arm-soc/drivers/cxl/core/features.c:676) > > Move the 'select' into the symbol that controls the core module instead. > > Fixes: a53a6004e7a5 ("cxl: Add FWCTL support to CXL") > Signed-off-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Dave Jiang <dave.jiang@intel.com> Thanks for the fix Arnd. Jason can you please append this fix to your latest branch? Thanks! > --- > drivers/cxl/Kconfig | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/cxl/Kconfig b/drivers/cxl/Kconfig > index ed49e7e7e5bc..cf1ba673b8c2 100644 > --- a/drivers/cxl/Kconfig > +++ b/drivers/cxl/Kconfig > @@ -7,6 +7,7 @@ menuconfig CXL_BUS > select PCI_DOE > select FIRMWARE_TABLE > select NUMA_KEEP_MEMINFO if NUMA_MEMBLKS > + select FWCTL if CXL_FEATURES > help > CXL is a bus that is electrically compatible with PCI Express, but > layers three protocols on that signalling (CXL.io, CXL.cache, and > @@ -105,7 +106,6 @@ config CXL_MEM > config CXL_FEATURES > bool "CXL: Features" > depends on CXL_PCI > - select FWCTL > help > Enable support for CXL Features. A CXL device that includes a mailbox > supports commands that allows listing, getting, and setting of
Arnd Bergmann wrote: > From: Arnd Bergmann <arnd@arndb.de> > > The 'FWCTL' subsystem is selected by CXL_FEATURES, which is a 'bool' symbol > with a dependency on CXL_PCI, but referenced by the cxl_core.ko. > When cxl_core is built-in, but the cxl_pci.ko driver is a loadable mdoule, > this results in a link failure: > > ld.lld-21: error: undefined symbol: _fwctl_alloc_device > >>> referenced by features.c:695 (/home/arnd/arm-soc/drivers/cxl/core/features.c:695) > ld.lld-21: error: undefined symbol: fwctl_register > >>> referenced by features.c:699 (/home/arnd/arm-soc/drivers/cxl/core/features.c:699) > ld.lld-21: error: undefined symbol: fwctl_unregister > >>> referenced by features.c:676 (/home/arnd/arm-soc/drivers/cxl/core/features.c:676) > > Move the 'select' into the symbol that controls the core module instead. > > Fixes: a53a6004e7a5 ("cxl: Add FWCTL support to CXL") > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > --- > drivers/cxl/Kconfig | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/cxl/Kconfig b/drivers/cxl/Kconfig > index ed49e7e7e5bc..cf1ba673b8c2 100644 > --- a/drivers/cxl/Kconfig > +++ b/drivers/cxl/Kconfig > @@ -7,6 +7,7 @@ menuconfig CXL_BUS > select PCI_DOE > select FIRMWARE_TABLE > select NUMA_KEEP_MEMINFO if NUMA_MEMBLKS > + select FWCTL if CXL_FEATURES Looks good, Reviewed-by: Dan Williams <dan.j.williams@intel.com> ...I tried to find a way to keep it local to the CXL_FEATURES symbol, but it really is an optional core feature that needs to have the select from the core module like you have it. > help > CXL is a bus that is electrically compatible with PCI Express, but > layers three protocols on that signalling (CXL.io, CXL.cache, and > @@ -105,7 +106,6 @@ config CXL_MEM > config CXL_FEATURES > bool "CXL: Features" > depends on CXL_PCI Drive-by observation for an additional cleanup that this CXL_PCI dependency is bogus. If it were real then there would be a circular dependency between cxl_pci.ko and cxl_core.ko. As is this is just noise in the Kconfig file since the dependency solver would already be screaming if this was a true dependency.
On Mon, Mar 10, 2025 at 08:24:44AM -0700, Dave Jiang wrote: > > > On 3/10/25 6:51 AM, Arnd Bergmann wrote: > > From: Arnd Bergmann <arnd@arndb.de> > > > > The 'FWCTL' subsystem is selected by CXL_FEATURES, which is a 'bool' symbol > > with a dependency on CXL_PCI, but referenced by the cxl_core.ko. > > When cxl_core is built-in, but the cxl_pci.ko driver is a loadable mdoule, > > this results in a link failure: > > > > ld.lld-21: error: undefined symbol: _fwctl_alloc_device > >>>> referenced by features.c:695 (/home/arnd/arm-soc/drivers/cxl/core/features.c:695) > > ld.lld-21: error: undefined symbol: fwctl_register > >>>> referenced by features.c:699 (/home/arnd/arm-soc/drivers/cxl/core/features.c:699) > > ld.lld-21: error: undefined symbol: fwctl_unregister > >>>> referenced by features.c:676 (/home/arnd/arm-soc/drivers/cxl/core/features.c:676) > > > > Move the 'select' into the symbol that controls the core module instead. > > > > Fixes: a53a6004e7a5 ("cxl: Add FWCTL support to CXL") > > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > > Acked-by: Dave Jiang <dave.jiang@intel.com> > > Thanks for the fix Arnd. Jason can you please append this fix to your latest branch? Thanks! I folded it into the Fixes commit thanks Jason
diff --git a/drivers/cxl/Kconfig b/drivers/cxl/Kconfig index ed49e7e7e5bc..cf1ba673b8c2 100644 --- a/drivers/cxl/Kconfig +++ b/drivers/cxl/Kconfig @@ -7,6 +7,7 @@ menuconfig CXL_BUS select PCI_DOE select FIRMWARE_TABLE select NUMA_KEEP_MEMINFO if NUMA_MEMBLKS + select FWCTL if CXL_FEATURES help CXL is a bus that is electrically compatible with PCI Express, but layers three protocols on that signalling (CXL.io, CXL.cache, and @@ -105,7 +106,6 @@ config CXL_MEM config CXL_FEATURES bool "CXL: Features" depends on CXL_PCI - select FWCTL help Enable support for CXL Features. A CXL device that includes a mailbox supports commands that allows listing, getting, and setting of