]> www.infradead.org Git - nvme.git/commitdiff
nvme: target: fix nvme_keyring_id() references
authorArnd Bergmann <arnd@arndb.de>
Wed, 22 Nov 2023 22:47:17 +0000 (23:47 +0100)
committerJens Axboe <axboe@kernel.dk>
Thu, 23 Nov 2023 01:40:14 +0000 (18:40 -0700)
In configurations without CONFIG_NVME_TARGET_TCP_TLS, the keyring
code might not be available, or using it will result in a runtime
failure:

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

Add a check to ensure we only check the keyring if there is a chance
of it being used, which avoids both the runtime and link-time
problems.

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

index 9eed6e6765eaa7c39e5a616227dbb9268533a934..e307a044b1a1bc1fee0b7ca4a87c3be84a828d15 100644 (file)
@@ -1893,7 +1893,7 @@ static struct config_group *nvmet_ports_make(struct config_group *group,
                return ERR_PTR(-ENOMEM);
        }
 
-       if (nvme_keyring_id()) {
+       if (IS_ENABLED(CONFIG_NVME_TARGET_TCP_TLS) && nvme_keyring_id()) {
                port->keyring = key_lookup(nvme_keyring_id());
                if (IS_ERR(port->keyring)) {
                        pr_warn("NVMe keyring not available, disabling TLS\n");