[PATCH 07/12] nvme: Implement In-Band authentication

Hannes Reinecke hare at suse.de
Tue Sep 14 00:19:48 PDT 2021


On 9/14/21 9:06 AM, Sagi Grimberg wrote:
>>>> @@ -361,11 +366,13 @@ static inline void nvme_end_req(struct request
>>>> *req)
>>>>      void nvme_complete_rq(struct request *req)
>>>>    {
>>>> +    struct nvme_ctrl *ctrl = nvme_req(req)->ctrl;
>>>> +
>>>>        trace_nvme_complete_rq(req);
>>>>        nvme_cleanup_cmd(req);
>>>>    -    if (nvme_req(req)->ctrl->kas)
>>>> -        nvme_req(req)->ctrl->comp_seen = true;
>>>> +    if (ctrl->kas)
>>>> +        ctrl->comp_seen = true;
>>>>          switch (nvme_decide_disposition(req)) {
>>>>        case COMPLETE:
>>>> @@ -377,6 +384,15 @@ void nvme_complete_rq(struct request *req)
>>>>        case FAILOVER:
>>>>            nvme_failover_req(req);
>>>>            return;
>>>> +    case AUTHENTICATE:
>>>> +#ifdef CONFIG_NVME_AUTH
>>>> +        if (nvme_change_ctrl_state(ctrl, NVME_CTRL_RESETTING))
>>>> +            queue_work(nvme_wq, &ctrl->dhchap_auth_work);
>>>
>>> Why is the state change here and not in nvme_dhchap_auth_work?
>>>
>> Because switching to 'resetting' is an easy way to synchronize with the
>> admin queue.
> 
> Maybe fold this into nvme_authenticate_ctrl? in case someone adds/moves
> this in the future and forgets the ctrl state serialization?

Yeah; not a bad idea. Will be looking into it.

Cheers,

Hannes
-- 
Dr. Hannes Reinecke		           Kernel Storage Architect
hare at suse.de			                  +49 911 74053 688
SUSE Software Solutions Germany GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), GF: Felix Imendörffer



More information about the Linux-nvme mailing list