nvme: rework NVME_AUTH Kconfig selection
authorHannes Reinecke <hare@suse.de>
Thu, 12 Oct 2023 12:22:48 +0000 (14:22 +0200)
committerKeith Busch <kbusch@kernel.org>
Thu, 12 Oct 2023 15:04:49 +0000 (08:04 -0700)
Having a single Kconfig symbol NVME_AUTH conflates the selection
of the authentication functions from nvme/common and nvme/host,
causing kbuild robot to complain when building the nvme target
only. So introduce a Kconfig symbol NVME_HOST_AUTH for the nvme
host bits and use NVME_AUTH for the common functions only.
And move the CRYPTO selection into nvme/common to make it
easier to read.

Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202310120733.TlPOVeJm-lkp@intel.com/
Signed-off-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Keith Busch <kbusch@kernel.org>
drivers/nvme/common/Kconfig
drivers/nvme/host/Kconfig
drivers/nvme/host/Makefile
drivers/nvme/host/core.c
drivers/nvme/host/nvme.h
drivers/nvme/host/sysfs.c
drivers/nvme/target/Kconfig

index 641b27adb047eebf35702471777c4d8c3d039223..06c8df00d1e21450e180c3edcec170d05d81b0c4 100644 (file)
@@ -6,3 +6,12 @@ config NVME_COMMON
 config NVME_KEYRING
        bool
        select KEYS
+
+config NVME_AUTH
+       bool
+       select CRYPTO
+       select CRYPTO_HMAC
+       select CRYPTO_SHA256
+       select CRYPTO_SHA512
+       select CRYPTO_DH
+       select CRYPTO_DH_RFC7919_GROUPS
index a517030d7d507744b7253fcaaa51b635c11dbc9d..48f7d72de5e9a5d2d2861e6835640d0176736517 100644 (file)
@@ -107,16 +107,11 @@ config NVME_TCP_TLS
 
          If unsure, say N.
 
-config NVME_AUTH
+config NVME_HOST_AUTH
        bool "NVM Express over Fabrics In-Band Authentication"
        depends on NVME_CORE
        select NVME_COMMON
-       select CRYPTO
-       select CRYPTO_HMAC
-       select CRYPTO_SHA256
-       select CRYPTO_SHA512
-       select CRYPTO_DH
-       select CRYPTO_DH_RFC7919_GROUPS
+       select NVME_AUTH
        help
          This provides support for NVMe over Fabrics In-Band Authentication.
 
index c7c3cf202d12d8380f61248bd670031cc3b56b9a..6414ec968f99ae69f991cbd61e7ad79554e5041f 100644 (file)
@@ -17,7 +17,7 @@ nvme-core-$(CONFIG_NVME_MULTIPATH)    += multipath.o
 nvme-core-$(CONFIG_BLK_DEV_ZONED)      += zns.o
 nvme-core-$(CONFIG_FAULT_INJECTION_DEBUG_FS)   += fault_inject.o
 nvme-core-$(CONFIG_NVME_HWMON)         += hwmon.o
-nvme-core-$(CONFIG_NVME_AUTH)          += auth.o
+nvme-core-$(CONFIG_NVME_HOST_AUTH)     += auth.o
 
 nvme-y                                 += pci.o
 
index 55e54ffb10035d5c5db99427eaa728d944704b1b..62612f87aafa228622859ebc2f484c93b7ebe55e 100644 (file)
@@ -421,7 +421,7 @@ void nvme_complete_rq(struct request *req)
                nvme_failover_req(req);
                return;
        case AUTHENTICATE:
-#ifdef CONFIG_NVME_AUTH
+#ifdef CONFIG_NVME_HOST_AUTH
                queue_work(nvme_wq, &ctrl->dhchap_auth_work);
                nvme_retry_req(req);
 #else
index 6fe7966f720b0e4d0712bda6eb82e40016dd00ef..39a90b7cb1254e2cbad1318359ff79b186308972 100644 (file)
@@ -349,7 +349,7 @@ struct nvme_ctrl {
        struct work_struct ana_work;
 #endif
 
-#ifdef CONFIG_NVME_AUTH
+#ifdef CONFIG_NVME_HOST_AUTH
        struct work_struct dhchap_auth_work;
        struct mutex dhchap_auth_mutex;
        struct nvme_dhchap_queue_context *dhchap_ctxs;
@@ -1049,7 +1049,7 @@ static inline bool nvme_ctrl_sgl_supported(struct nvme_ctrl *ctrl)
        return ctrl->sgls & ((1 << 0) | (1 << 1));
 }
 
-#ifdef CONFIG_NVME_AUTH
+#ifdef CONFIG_NVME_HOST_AUTH
 int __init nvme_init_auth(void);
 void __exit nvme_exit_auth(void);
 int nvme_auth_init_ctrl(struct nvme_ctrl *ctrl);
index d0966159981c8bbfabb97c72dd9e39a74b719d6b..c6b7fbd4d34ddb3707c70f2675ce92676a618b1f 100644 (file)
@@ -409,7 +409,7 @@ static ssize_t dctype_show(struct device *dev,
 }
 static DEVICE_ATTR_RO(dctype);
 
-#ifdef CONFIG_NVME_AUTH
+#ifdef CONFIG_NVME_HOST_AUTH
 static ssize_t nvme_ctrl_dhchap_secret_show(struct device *dev,
                struct device_attribute *attr, char *buf)
 {
@@ -563,7 +563,7 @@ static struct attribute *nvme_dev_attrs[] = {
        &dev_attr_kato.attr,
        &dev_attr_cntrltype.attr,
        &dev_attr_dctype.attr,
-#ifdef CONFIG_NVME_AUTH
+#ifdef CONFIG_NVME_HOST_AUTH
        &dev_attr_dhchap_secret.attr,
        &dev_attr_dhchap_ctrl_secret.attr,
 #endif
@@ -593,7 +593,7 @@ static umode_t nvme_dev_attrs_are_visible(struct kobject *kobj,
                return 0;
        if (a == &dev_attr_fast_io_fail_tmo.attr && !ctrl->opts)
                return 0;
-#ifdef CONFIG_NVME_AUTH
+#ifdef CONFIG_NVME_HOST_AUTH
        if (a == &dev_attr_dhchap_secret.attr && !ctrl->opts)
                return 0;
        if (a == &dev_attr_dhchap_ctrl_secret.attr && !ctrl->opts)
index c56cb10053279a599ef70fc6c5b7ea633e22ac21..fa479c9f5c3d3237939ac01a2aa65128abdc0599 100644 (file)
@@ -103,12 +103,7 @@ config NVME_TARGET_AUTH
        bool "NVMe over Fabrics In-band Authentication support"
        depends on NVME_TARGET
        select NVME_COMMON
-       select CRYPTO
-       select CRYPTO_HMAC
-       select CRYPTO_SHA256
-       select CRYPTO_SHA512
-       select CRYPTO_DH
-       select CRYPTO_DH_RFC7919_GROUPS
+       select NVME_AUTH
        help
          This enables support for NVMe over Fabrics In-band Authentication