nvmet: remove unsupported command noise
authorKeith Busch <kbusch@kernel.org>
Thu, 29 Apr 2021 04:25:58 +0000 (21:25 -0700)
committerChristoph Hellwig <hch@lst.de>
Tue, 4 May 2021 07:39:26 +0000 (09:39 +0200)
Nothing can stop a host from submitting invalid commands. The target
just needs to respond with an appropriate status, but that's not a
target error. Demote invalid command messages to the debug level so
these events don't spam the kernel logs.

Reported-by: Yi Zhang <yi.zhang@redhat.com>
Signed-off-by: Keith Busch <kbusch@kernel.org>
Reviewed-by: Klaus Jensen <k.jensen@samsung.com>
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/nvme/target/admin-cmd.c

index d2a26ff..e7a367c 100644 (file)
@@ -307,7 +307,7 @@ static void nvmet_execute_get_log_page(struct nvmet_req *req)
        case NVME_LOG_ANA:
                return nvmet_execute_get_log_page_ana(req);
        }
-       pr_err("unhandled lid %d on qid %d\n",
+       pr_debug("unhandled lid %d on qid %d\n",
               req->cmd->get_log_page.lid, req->sq->qid);
        req->error_loc = offsetof(struct nvme_get_log_page_command, lid);
        nvmet_req_complete(req, NVME_SC_INVALID_FIELD | NVME_SC_DNR);
@@ -659,7 +659,7 @@ static void nvmet_execute_identify(struct nvmet_req *req)
                return nvmet_execute_identify_desclist(req);
        }
 
-       pr_err("unhandled identify cns %d on qid %d\n",
+       pr_debug("unhandled identify cns %d on qid %d\n",
               req->cmd->identify.cns, req->sq->qid);
        req->error_loc = offsetof(struct nvme_identify, cns);
        nvmet_req_complete(req, NVME_SC_INVALID_FIELD | NVME_SC_DNR);
@@ -977,7 +977,7 @@ u16 nvmet_parse_admin_cmd(struct nvmet_req *req)
                return 0;
        }
 
-       pr_err("unhandled cmd %d on qid %d\n", cmd->common.opcode,
+       pr_debug("unhandled cmd %d on qid %d\n", cmd->common.opcode,
               req->sq->qid);
        req->error_loc = offsetof(struct nvme_common_command, opcode);
        return NVME_SC_INVALID_OPCODE | NVME_SC_DNR;