[PATCH 1/4] nvme: authentication error are always non-retryable

Christoph Hellwig hch at lst.de
Fri Mar 1 05:12:08 PST 2024


> -	if ((nvme_req(req)->status & 0x7ff) == NVME_SC_AUTH_REQUIRED)
> -		return AUTHENTICATE;
> -
>  	if (blk_noretry_request(req) ||
>  	    (nvme_req(req)->status & NVME_SC_DNR) ||
>  	    nvme_req(req)->retries >= nvme_max_retries)
>  		return COMPLETE;
>  
> +	if ((nvme_req(req)->status & 0x7ff) == NVME_SC_AUTH_REQUIRED)
> +		return AUTHENTICATE;

This part looks fine (although I'd word the commit message
differently for it).

> @@ -467,7 +467,7 @@ int nvmf_connect_admin_queue(struct nvme_ctrl *ctrl)
>  		if (result & NVME_CONNECT_AUTHREQ_ASCR) {
>  			dev_warn(ctrl->device,
>  				 "qid 0: secure concatenation is not supported\n");
> -			ret = NVME_SC_AUTH_REQUIRED;
> +			ret = NVME_SC_AUTH_REQUIRED | NVME_SC_DNR;
>  			goto out_free_data;
>  		}
>  		/* Authentication required */
> @@ -475,14 +475,16 @@ int nvmf_connect_admin_queue(struct nvme_ctrl *ctrl)
>  		if (ret) {
>  			dev_warn(ctrl->device,
>  				 "qid 0: authentication setup failed\n");
> -			ret = NVME_SC_AUTH_REQUIRED;
> +			ret = NVME_SC_AUTH_REQUIRED | NVME_SC_DNR;


.. but the others should never use nvme status codes as they never
go out onto the wire.




More information about the Linux-nvme mailing list