s390/dcssblk: Fix build error with CONFIG_DAX=m and CONFIG_DCSSBLK=y
authorGerald Schaefer <gerald.schaefer@linux.ibm.com>
Tue, 29 Apr 2025 16:21:01 +0000 (18:21 +0200)
committerHeiko Carstens <hca@linux.ibm.com>
Mon, 5 May 2025 13:46:34 +0000 (15:46 +0200)
After commit 653d7825c149 ("dcssblk: mark DAX broken, remove FS_DAX_LIMITED
support") moved the "select DAX" from config DCSSBLK to the new config
DCSSBLK_DAX, randconfig tests could result in build errors like this:

s390-linux-ld: drivers/s390/block/dcssblk.o: in function `dcssblk_shared_store':
drivers/s390/block/dcssblk.c:417: undefined reference to `kill_dax'
s390-linux-ld: drivers/s390/block/dcssblk.c:418: undefined reference to `put_dax'

This is because it's now possible to have CONFIG_DCSSBLK=y, but CONFIG_DAX=m.
Fix this by adding "depends on DAX || DAX=n" to config DCSSBLK, to make it
explicit that we want either no DAX, or the same "y/m" for both config DAX
and DCSSBLK, similar to config BLK_DEV_DM.

This also requires removing the "select DAX" from config DCSSBLK_DAX, or
else there would be a recursive dependency detected. DCSSBLK_DAX is marked
as BROKEN at the moment, and won't work well with DAX anyway, so it doesn't
really matter if it is selected.

Fixes: 653d7825c149 ("dcssblk: mark DAX broken, remove FS_DAX_LIMITED support")
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202504291604.pvjonhWX-lkp@intel.com/
Signed-off-by: Gerald Schaefer <gerald.schaefer@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
drivers/s390/block/Kconfig

index 4bfe469c04aabaea4f262b748f538e12f6258a72..8c1c908d2c6e72239a48969990937aa5c344be27 100644 (file)
@@ -5,7 +5,7 @@ comment "S/390 block device drivers"
 config DCSSBLK
        def_tristate m
        prompt "DCSSBLK support"
-       depends on S390 && BLOCK
+       depends on S390 && BLOCK && (DAX || DAX=n)
        help
          Support for dcss block device
 
@@ -14,7 +14,6 @@ config DCSSBLK_DAX
        depends on DCSSBLK
        # requires S390 ZONE_DEVICE support
        depends on BROKEN
-       select DAX
        prompt "DCSSBLK DAX support"
        help
          Enable DAX operation for the dcss block device