[PATCH 14/16] nvme-auth: have dhchap_auth_work wait for queues auth to complete
Sagi Grimberg
sagi at grimberg.me
Wed Nov 9 11:01:36 PST 2022
On 11/9/22 09:44, Hannes Reinecke wrote:
> On 11/9/22 04:44, Sagi Grimberg wrote:
>> It triggered the queue authentication work elements in parallel, but
>> the ctrl authentication work itself completes when all of them
>> completes. Hence wait for queues auth completions.
>>
>> This also makes nvme_auth_stop simply a sync cancel of ctrl
>> dhchap_auth_work.
>>
>> Signed-off-by: Sagi Grimberg <sagi at grimberg.me>
>> ---
>> drivers/nvme/host/auth.c | 11 ++++++-----
>> 1 file changed, 6 insertions(+), 5 deletions(-)
>>
>> diff --git a/drivers/nvme/host/auth.c b/drivers/nvme/host/auth.c
>> index 0159179c2455..e88d6254f2f5 100644
>> --- a/drivers/nvme/host/auth.c
>> +++ b/drivers/nvme/host/auth.c
>> @@ -924,6 +924,12 @@ static void nvme_dhchap_auth_work(struct
>> work_struct *work)
>> * Failure is a soft-state; credentials remain valid until
>> * the controller terminates the connection.
>> */
>> + for (q = 1; q < ctrl->queue_count; q++) {
>> + ret = nvme_auth_wait(ctrl, q);
>> + if (ret)
>> + dev_warn(ctrl->device,
>> + "qid %d: authentication failed\n", q);
>> + }
>> }
> Don't we need to clear the dhchap context here?
nvme_auth_wait clears it.
>
>> int nvme_auth_init_ctrl(struct nvme_ctrl *ctrl)
>> @@ -974,12 +980,7 @@ EXPORT_SYMBOL_GPL(nvme_auth_init_ctrl);
>> void nvme_auth_stop(struct nvme_ctrl *ctrl)
>> {
>> - struct nvme_dhchap_queue_context *chap;
>> - int i;
>> -
>> cancel_work_sync(&ctrl->dhchap_auth_work);
>> - nvme_foreach_dhchap(i, chap, ctrl)
>> - cancel_work_sync(&chap->auth_work);
>> }
>> EXPORT_SYMBOL_GPL(nvme_auth_stop);
> Cheers,
>
> Hannes
More information about the Linux-nvme
mailing list