[PATCH] nvme: add crd value to output error log

Sagi Grimberg sagi at grimberg.me
Sun Aug 23 02:32:43 PDT 2026


This makes sense to me.

On 09/08/2026 20:34, Tokunori Ikegami wrote:
> Also add NVME_CRD to get the status CRD value.
>
> Signed-off-by: Tokunori Ikegami <ikegami.t at gmail.com>
> ---
>   drivers/nvme/host/core.c | 15 +++++++++------
>   include/linux/nvme.h     |  1 +
>   2 files changed, 10 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
> index 453c1f0b2dd0..0178de333ceb 100644
> --- a/drivers/nvme/host/core.c
> +++ b/drivers/nvme/host/core.c
> @@ -326,7 +326,7 @@ static void nvme_retry_req(struct request *req)
>   	struct nvme_ns *ns = req->q->queuedata;
>   
>   	/* The mask and shift result must be <= 3 */
> -	crd = (nvme_req(req)->status & NVME_STATUS_CRD) >> 11;
> +	crd = NVME_CRD(nvme_req(req)->status);
>   	if (crd)
>   		delay = nvme_req(req)->ctrl->crdt[crd - 1] * 100;
>   
> @@ -344,7 +344,7 @@ static void nvme_log_error(struct request *req)
>   	struct nvme_request *nr = nvme_req(req);
>   
>   	if (ns) {
> -		pr_err_ratelimited("%s: %s(0x%x) @ LBA %llu, %u blocks, %s (sct 0x%x / sc 0x%x) %s%s\n",
> +		pr_err_ratelimited("%s: %s(0x%x) @ LBA %llu, %u blocks, %s (sct 0x%x / sc 0x%x) %s%scrd=%u\n",
>   		       ns->disk ? ns->disk->disk_name : "?",
>   		       nvme_get_opcode_str(nr->cmd->common.opcode),
>   		       nr->cmd->common.opcode,
> @@ -354,11 +354,12 @@ static void nvme_log_error(struct request *req)
>   		       NVME_SCT(nr->status),		/* Status Code Type */
>   		       nr->status & NVME_SC_MASK,	/* Status Code */
>   		       nr->status & NVME_STATUS_MORE ? "MORE " : "",
> -		       nr->status & NVME_STATUS_DNR  ? "DNR "  : "");
> +		       nr->status & NVME_STATUS_DNR  ? "DNR "  : "",
> +		       NVME_CRD(nr->status));
>   		return;
>   	}
>   
> -	pr_err_ratelimited("%s: %s(0x%x), %s (sct 0x%x / sc 0x%x) %s%s\n",
> +	pr_err_ratelimited("%s: %s(0x%x), %s (sct 0x%x / sc 0x%x) %s%scrd=%u\n",

no space? also perhaps "crd 0x%x" ?



More information about the Linux-nvme mailing list