2023-07-31 15:34:49

by Mark O'Donovan

[permalink] [raw]
Subject: [PATCH v2 1/2] nvme-auth: unlock mutex in one place only

Signed-off-by: Mark O'Donovan <[email protected]>
Reviewed-by: Christoph Hellwig <[email protected]>
Reviewed-by: Sagi Grimberg <[email protected]>
---
drivers/nvme/host/auth.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/nvme/host/auth.c b/drivers/nvme/host/auth.c
index daf5d144a8ea..e1a98647c3a2 100644
--- a/drivers/nvme/host/auth.c
+++ b/drivers/nvme/host/auth.c
@@ -758,12 +758,11 @@ static void nvme_queue_auth_work(struct work_struct *work)
__func__, chap->qid);
mutex_lock(&ctrl->dhchap_auth_mutex);
ret = nvme_auth_dhchap_setup_host_response(ctrl, chap);
+ mutex_unlock(&ctrl->dhchap_auth_mutex);
if (ret) {
- mutex_unlock(&ctrl->dhchap_auth_mutex);
chap->error = ret;
goto fail2;
}
- mutex_unlock(&ctrl->dhchap_auth_mutex);

/* DH-HMAC-CHAP Step 3: send reply */
dev_dbg(ctrl->device, "%s: qid %d send reply\n",
--
2.39.2



2023-07-31 17:04:16

by Mark O'Donovan

[permalink] [raw]
Subject: [PATCH v2 2/2] nvme-auth: set explanation code for failure2 msgs

Some error cases were not setting an auth-failure-reason-code-explanation.
This means an AUTH_Failure2 message will be sent with an explanation value
of 0 which is a reserved value.

Signed-off-by: Mark O'Donovan <[email protected]>
---
v1->v2: Set failure explanation in a single place if the error handling
code has not already done so.

drivers/nvme/host/auth.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/nvme/host/auth.c b/drivers/nvme/host/auth.c
index e1a98647c3a2..9556cfc4f5f3 100644
--- a/drivers/nvme/host/auth.c
+++ b/drivers/nvme/host/auth.c
@@ -839,6 +839,8 @@ static void nvme_queue_auth_work(struct work_struct *work)
}

fail2:
+ if (chap->status == 0)
+ chap->status = NVME_AUTH_DHCHAP_FAILURE_FAILED;
dev_dbg(ctrl->device, "%s: qid %d send failure2, status %x\n",
__func__, chap->qid, chap->status);
tl = nvme_auth_set_dhchap_failure2_data(ctrl, chap);
--
2.39.2


2023-07-31 17:05:56

by Hannes Reinecke

[permalink] [raw]
Subject: Re: [PATCH v2 2/2] nvme-auth: set explanation code for failure2 msgs

On 7/31/23 16:51, Mark O'Donovan wrote:
> Some error cases were not setting an auth-failure-reason-code-explanation.
> This means an AUTH_Failure2 message will be sent with an explanation value
> of 0 which is a reserved value.
>
> Signed-off-by: Mark O'Donovan <[email protected]>
> ---
> v1->v2: Set failure explanation in a single place if the error handling
> code has not already done so.
>
> drivers/nvme/host/auth.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/nvme/host/auth.c b/drivers/nvme/host/auth.c
> index e1a98647c3a2..9556cfc4f5f3 100644
> --- a/drivers/nvme/host/auth.c
> +++ b/drivers/nvme/host/auth.c
> @@ -839,6 +839,8 @@ static void nvme_queue_auth_work(struct work_struct *work)
> }
>
> fail2:
> + if (chap->status == 0)
> + chap->status = NVME_AUTH_DHCHAP_FAILURE_FAILED;
> dev_dbg(ctrl->device, "%s: qid %d send failure2, status %x\n",
> __func__, chap->qid, chap->status);
> tl = nvme_auth_set_dhchap_failure2_data(ctrl, chap);

Reviewed-by: Hannes Reinecke <[email protected]>

Cheers,

Hannes
--
Dr. Hannes Reinecke Kernel Storage Architect
[email protected] +49 911 74053 688
SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), Geschäftsführer: Ivo Totev, Andrew
Myers, Andrew McDonald, Martje Boudien Moerman


2023-07-31 18:04:12

by Hannes Reinecke

[permalink] [raw]
Subject: Re: [PATCH v2 1/2] nvme-auth: unlock mutex in one place only

On 7/31/23 16:51, Mark O'Donovan wrote:
> Signed-off-by: Mark O'Donovan <[email protected]>
> Reviewed-by: Christoph Hellwig <[email protected]>
> Reviewed-by: Sagi Grimberg <[email protected]>
> ---
> drivers/nvme/host/auth.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/nvme/host/auth.c b/drivers/nvme/host/auth.c
> index daf5d144a8ea..e1a98647c3a2 100644
> --- a/drivers/nvme/host/auth.c
> +++ b/drivers/nvme/host/auth.c
> @@ -758,12 +758,11 @@ static void nvme_queue_auth_work(struct work_struct *work)
> __func__, chap->qid);
> mutex_lock(&ctrl->dhchap_auth_mutex);
> ret = nvme_auth_dhchap_setup_host_response(ctrl, chap);
> + mutex_unlock(&ctrl->dhchap_auth_mutex);
> if (ret) {
> - mutex_unlock(&ctrl->dhchap_auth_mutex);
> chap->error = ret;
> goto fail2;
> }
> - mutex_unlock(&ctrl->dhchap_auth_mutex);
>
> /* DH-HMAC-CHAP Step 3: send reply */
> dev_dbg(ctrl->device, "%s: qid %d send reply\n",
If you insist.

Reviewed-by: Hannes Reinecke <[email protected]>

Cheers,

Hannes
--
Dr. Hannes Reinecke Kernel Storage Architect
[email protected] +49 911 74053 688
SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), Geschäftsführer: Ivo Totev, Andrew
Myers, Andrew McDonald, Martje Boudien Moerman