[PATCH 2/3] nvme: use generic helper to store ctrl secret
Sagi Grimberg
sagi at grimberg.me
Wed May 17 00:32:02 PDT 2023
Can be squashed to the former.
On 5/16/23 13:06, Chaitanya Kulkarni wrote:
> Use generic helper to store the dhchap ctrl secret.
>
> Signed-off-by: Chaitanya Kulkarni <kch at nvidia.com>
> ---
> drivers/nvme/host/sysfs.c | 40 +--------------------------------------
> 1 file changed, 1 insertion(+), 39 deletions(-)
>
> diff --git a/drivers/nvme/host/sysfs.c b/drivers/nvme/host/sysfs.c
> index 9ce3b16f06da..515baf8d6402 100644
> --- a/drivers/nvme/host/sysfs.c
> +++ b/drivers/nvme/host/sysfs.c
> @@ -498,45 +498,7 @@ static ssize_t nvme_ctrl_dhchap_ctrl_secret_show(struct device *dev,
> static ssize_t nvme_ctrl_dhchap_ctrl_secret_store(struct device *dev,
> struct device_attribute *attr, const char *buf, size_t count)
> {
> - struct nvme_ctrl *ctrl = dev_get_drvdata(dev);
> - struct nvmf_ctrl_options *opts = ctrl->opts;
> - char *dhchap_secret;
> -
> - if (!ctrl->opts->dhchap_ctrl_secret)
> - return -EINVAL;
> - if (count < 7)
> - return -EINVAL;
> - if (memcmp(buf, "DHHC-1:", 7))
> - return -EINVAL;
> -
> - dhchap_secret = kzalloc(count + 1, GFP_KERNEL);
> - if (!dhchap_secret)
> - return -ENOMEM;
> - memcpy(dhchap_secret, buf, count);
> - nvme_auth_stop(ctrl);
> - if (strcmp(dhchap_secret, opts->dhchap_ctrl_secret)) {
> - struct nvme_dhchap_key *key, *ctrl_key;
> - int ret;
> -
> - ret = nvme_auth_generate_key(dhchap_secret, &key);
> - if (ret) {
> - kfree(dhchap_secret);
> - return ret;
> - }
> - kfree(opts->dhchap_ctrl_secret);
> - opts->dhchap_ctrl_secret = dhchap_secret;
> - ctrl_key = ctrl->ctrl_key;
> - mutex_lock(&ctrl->dhchap_auth_mutex);
> - ctrl->ctrl_key = key;
> - mutex_unlock(&ctrl->dhchap_auth_mutex);
> - nvme_auth_free_key(ctrl_key);
> - } else
> - kfree(dhchap_secret);
> - /* Start re-authentication */
> - dev_info(ctrl->device, "re-authenticating controller\n");
> - queue_work(nvme_wq, &ctrl->dhchap_auth_work);
> -
> - return count;
> + return nvme_dhchap_secret_store_common(ctrl, buf, count, false);
> }
>
> static DEVICE_ATTR(dhchap_ctrl_secret, S_IRUGO | S_IWUSR,
More information about the Linux-nvme
mailing list