aboutsummaryrefslogtreecommitdiff
path: root/drivers/nvme/target/auth.c
diff options
context:
space:
mode:
authorGravatar Hannes Reinecke <hare@kernel.org> 2024-04-30 15:19:24 +0200
committerGravatar Keith Busch <kbusch@kernel.org> 2024-05-01 03:07:20 -0700
commit213cbada7b07bf66409604e0d0dcd66a6a14891a (patch)
treec5dd13a57886dc3d522487ef0e3100fa3b132568 /drivers/nvme/target/auth.c
parentsbitmap: use READ_ONCE to access map->word (diff)
downloadlinux-213cbada7b07bf66409604e0d0dcd66a6a14891a.tar.gz
linux-213cbada7b07bf66409604e0d0dcd66a6a14891a.tar.bz2
linux-213cbada7b07bf66409604e0d0dcd66a6a14891a.zip
nvmet: lock config semaphore when accessing DH-HMAC-CHAP key
When the DH-HMAC-CHAP key is accessed via configfs we need to take the config semaphore as a reconnect might be running at the same time. Reviewed-by: Sagi Grimberg <sagi@grimberg.me> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Hannes Reinecke <hare@suse.de> Signed-off-by: Daniel Wagner <dwagner@suse.de> Signed-off-by: Keith Busch <kbusch@kernel.org>
Diffstat (limited to 'drivers/nvme/target/auth.c')
-rw-r--r--drivers/nvme/target/auth.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/nvme/target/auth.c b/drivers/nvme/target/auth.c
index 3ddbc3880cac..9afc28f1ffac 100644
--- a/drivers/nvme/target/auth.c
+++ b/drivers/nvme/target/auth.c
@@ -44,6 +44,7 @@ int nvmet_auth_set_key(struct nvmet_host *host, const char *secret,
dhchap_secret = kstrdup(secret, GFP_KERNEL);
if (!dhchap_secret)
return -ENOMEM;
+ down_write(&nvmet_config_sem);
if (set_ctrl) {
kfree(host->dhchap_ctrl_secret);
host->dhchap_ctrl_secret = strim(dhchap_secret);
@@ -53,6 +54,7 @@ int nvmet_auth_set_key(struct nvmet_host *host, const char *secret,
host->dhchap_secret = strim(dhchap_secret);
host->dhchap_key_hash = key_hash;
}
+ up_write(&nvmet_config_sem);
return 0;
}