dax: clx: add CXL_REGION dependency

Message ID 20230214103054.1082908-1-arnd@kernel.org
State New
Headers
Series dax: clx: add CXL_REGION dependency |

Commit Message

Arnd Bergmann Feb. 14, 2023, 10:30 a.m. UTC
  From: Arnd Bergmann <arnd@arndb.de>

There is already a dependency on CXL_REGION, which depends on CXL_BUS,
but since CXL_REGION is a 'bool' symbol, it's possible to configure
DAX as built-in even though CXL itself is a loadable module:

x86_64-linux-ld: drivers/dax/cxl.o: in function `cxl_dax_region_probe':
cxl.c:(.text+0xb): undefined reference to `to_cxl_dax_region'
x86_64-linux-ld: drivers/dax/cxl.o: in function `cxl_dax_region_driver_init':
cxl.c:(.init.text+0x10): undefined reference to `__cxl_driver_register'
x86_64-linux-ld: drivers/dax/cxl.o: in function `cxl_dax_region_driver_exit':
cxl.c:(.exit.text+0x9): undefined reference to `cxl_driver_unregister'

Prevent this with another depndency on the tristate symbol.

Fixes: 09d09e04d2fc ("cxl/dax: Create dax devices for CXL RAM regions")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 drivers/dax/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Dan Williams Feb. 14, 2023, 4:38 p.m. UTC | #1
Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> There is already a dependency on CXL_REGION, which depends on CXL_BUS,
> but since CXL_REGION is a 'bool' symbol, it's possible to configure
> DAX as built-in even though CXL itself is a loadable module:
> 
> x86_64-linux-ld: drivers/dax/cxl.o: in function `cxl_dax_region_probe':
> cxl.c:(.text+0xb): undefined reference to `to_cxl_dax_region'
> x86_64-linux-ld: drivers/dax/cxl.o: in function `cxl_dax_region_driver_init':
> cxl.c:(.init.text+0x10): undefined reference to `__cxl_driver_register'
> x86_64-linux-ld: drivers/dax/cxl.o: in function `cxl_dax_region_driver_exit':
> cxl.c:(.exit.text+0x9): undefined reference to `cxl_driver_unregister'
> 
> Prevent this with another depndency on the tristate symbol.
> 
> Fixes: 09d09e04d2fc ("cxl/dax: Create dax devices for CXL RAM regions")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---

Looks good, thanks Arnd.
  

Patch

diff --git a/drivers/dax/Kconfig b/drivers/dax/Kconfig
index 8c67a24592e3..a88744244149 100644
--- a/drivers/dax/Kconfig
+++ b/drivers/dax/Kconfig
@@ -46,7 +46,7 @@  config DEV_DAX_HMEM
 
 config DEV_DAX_CXL
 	tristate "CXL DAX: direct access to CXL RAM regions"
-	depends on CXL_REGION && DEV_DAX
+	depends on CXL_BUS && CXL_REGION && DEV_DAX
 	default CXL_REGION && DEV_DAX
 	help
 	  CXL RAM regions are either mapped by platform-firmware