]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
nvme: target: fix Kconfig select statements
authorArnd Bergmann <arnd@arndb.de>
Wed, 22 Nov 2023 22:47:18 +0000 (23:47 +0100)
committerJens Axboe <axboe@kernel.dk>
Thu, 23 Nov 2023 01:40:14 +0000 (18:40 -0700)
When the NVME target code is built-in but its TCP frontend is a loadable
module, enabling keyring support causes a link failure:

x86_64-linux-ld: vmlinux.o: in function `nvmet_ports_make':
configfs.c:(.text+0x100a211): undefined reference to `nvme_keyring_id'

The problem is that CONFIG_NVME_TARGET_TCP_TLS is a 'bool' symbol that
depends on the tristate CONFIG_NVME_TARGET_TCP, so any 'select' from
it inherits the state of the tristate symbol rather than the intended
CONFIG_NVME_TARGET one that contains the actual call.

The same thing is true for CONFIG_KEYS, which itself is required for
NVME_KEYRING.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Link: https://lore.kernel.org/r/20231122224719.4042108-3-arnd@kernel.org
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/nvme/target/Kconfig

index 31633da9427c7f54958ecb0eb514f3df20600cb3..e1ebc73f3e5e0ed95b9d3de3567aae543a835e55 100644 (file)
@@ -4,6 +4,8 @@ config NVME_TARGET
        tristate "NVMe Target support"
        depends on BLOCK
        depends on CONFIGFS_FS
+       select NVME_KEYRING if NVME_TARGET_TCP_TLS
+       select KEYS if NVME_TARGET_TCP_TLS
        select BLK_DEV_INTEGRITY_T10 if BLK_DEV_INTEGRITY
        select SGL_ALLOC
        help
@@ -87,9 +89,7 @@ config NVME_TARGET_TCP
 config NVME_TARGET_TCP_TLS
        bool "NVMe over Fabrics TCP target TLS encryption support"
        depends on NVME_TARGET_TCP
-       select NVME_KEYRING
        select NET_HANDSHAKE
-       select KEYS
        help
          Enables TLS encryption for the NVMe TCP target using the netlink handshake API.