[PATCH-v3] nvme: quiet user passthrough command errors

Alan Adamson alan.adamson at oracle.com
Fri Oct 28 14:02:48 PDT 2022



> On Oct 28, 2022, at 1:14 PM, Keith Busch <kbusch at meta.com> wrote:
> 
> From: Keith Busch <kbusch at kernel.org>
> 
> The driver is spamming the kernel logs for entirely harmless errors from
> user space submitting unsupported commands. Just silence the errors.
> The application has direct access to command status, so there's no need
> to log these.
> 
> And since every passthrough command now uses the quiet flag, move the
> setting to the common initializer.
> 
> Cc: Alan Adamson <alan.adamson at oracle.com>
> Reviewed-by: Daniel Wagner <dwagner at suse.de>
> Reviewed-by: Kanchan Joshi <joshi.k at samsung.com>
> Reviewed-by: Jens Axboe <axboe at kernel.dk>
> Reviewed-by: Chaitanya Kulkarni <kch at nvidia.com>
> Signed-off-by: Keith Busch <kbusch at kernel.org>
> ---
> v2->v3:
> 
>  Move the quiet to the passthrough-only init (Alan)
> 
> drivers/nvme/host/core.c | 3 +--
> drivers/nvme/host/pci.c  | 2 --
> 2 files changed, 1 insertion(+), 4 deletions(-)
> 
> diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
> index 686c55cb5d1a..52ae0bdda65d 100644
> --- a/drivers/nvme/host/core.c
> +++ b/drivers/nvme/host/core.c
> @@ -675,6 +675,7 @@ void nvme_init_request(struct request *req, struct nvme_command *cmd)
> 	if (req->mq_hctx->type == HCTX_TYPE_POLL)
> 		req->cmd_flags |= REQ_POLLED;
> 	nvme_clear_nvme_request(req);
> +	req->rq_flags |= RQF_QUIET;
> 	memcpy(nvme_req(req)->cmd, cmd, sizeof(*cmd));
> }
> EXPORT_SYMBOL_GPL(nvme_init_request);
> @@ -1037,7 +1038,6 @@ int __nvme_submit_sync_cmd(struct request_queue *q, struct nvme_command *cmd,
> 			goto out;
> 	}
> 
> -	req->rq_flags |= RQF_QUIET;
> 	ret = nvme_execute_rq(req, at_head);
> 	if (result && ret >= 0)
> 		*result = nvme_req(req)->result;
> @@ -1226,7 +1226,6 @@ static void nvme_keep_alive_work(struct work_struct *work)
> 	rq->timeout = ctrl->kato * HZ;
> 	rq->end_io = nvme_keep_alive_end_io;
> 	rq->end_io_data = ctrl;
> -	rq->rq_flags |= RQF_QUIET;
> 	blk_execute_rq_nowait(rq, false);
> }
> 
> diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c
> index 72b5c1addbff..8cd92283cbfc 100644
> --- a/drivers/nvme/host/pci.c
> +++ b/drivers/nvme/host/pci.c
> @@ -1436,7 +1436,6 @@ static enum blk_eh_timer_return nvme_timeout(struct request *req)
> 
> 	abort_req->end_io = abort_endio;
> 	abort_req->end_io_data = NULL;
> -	abort_req->rq_flags |= RQF_QUIET;
> 	blk_execute_rq_nowait(abort_req, false);
> 
> 	/*
> @@ -2485,7 +2484,6 @@ static int nvme_delete_queue(struct nvme_queue *nvmeq, u8 opcode)
> 	req->end_io_data = nvmeq;
> 
> 	init_completion(&nvmeq->delete_done);
> -	req->rq_flags |= RQF_QUIET;
> 	blk_execute_rq_nowait(req, false);
> 	return 0;
> }
> -- 
> 2.30.2
> 

Tested-by: Alan Adamson <alan.adamson at oracle.com>
Reviewed-by: Alan Adamson <alan.adamson at oracle.com>

Alan


More information about the Linux-nvme mailing list