diff options
author | 2024-04-30 15:19:24 +0200 | |
---|---|---|
committer | 2024-05-01 03:07:20 -0700 | |
commit | 213cbada7b07bf66409604e0d0dcd66a6a14891a (patch) | |
tree | c5dd13a57886dc3d522487ef0e3100fa3b132568 /drivers/nvme/target/auth.c | |
parent | sbitmap: use READ_ONCE to access map->word (diff) | |
download | linux-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.c | 2 |
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; } |