Linux-NVME Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: amit.engel@dell.com
To: sagi@grimberg.me, linux-nvme@lists.infradead.org
Cc: Amit Engel <Amit.Engel@dell.com>
Subject: [PATCH] nvmet: return Invalid Field error on set features cmd fid 07h
Date: Thu, 27 Feb 2020 16:16:52 +0200	[thread overview]
Message-ID: <20200227141652.80584-1-amit.engel@dell.com> (raw)

From: Amit Engel <amit.engel@dell.com>

If the value specified in NCQR and NSQR fields (0's based) is 65,535
the controller should return an error of Invalid field in command

Signed-off-by: Amit Engel <Amit.Engel@dell.com>
---
 drivers/nvme/target/admin-cmd.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/drivers/nvme/target/admin-cmd.c b/drivers/nvme/target/admin-cmd.c
index 19f949570625..f76b44768100 100644
--- a/drivers/nvme/target/admin-cmd.c
+++ b/drivers/nvme/target/admin-cmd.c
@@ -733,16 +733,25 @@ static void nvmet_execute_set_features(struct nvmet_req *req)
 {
 	struct nvmet_subsys *subsys = req->sq->ctrl->subsys;
 	u32 cdw10 = le32_to_cpu(req->cmd->common.cdw10);
+	u32 cdw11 = le32_to_cpu(req->cmd->common.cdw11);
 	u16 status = 0;
 
 	if (!nvmet_check_data_len(req, 0))
 		return;
 
 	switch (cdw10 & 0xff) {
-	case NVME_FEAT_NUM_QUEUES:
+	case NVME_FEAT_NUM_QUEUES: {
+		u16 ncqr = (cdw11 >> 16) & 0xffff;
+		u16 nsqr = cdw11 & 0xffff;
+
+		if (ncqr == 0xffff || nsqr == 0xffff) {
+			status = NVME_SC_INVALID_FIELD | NVME_SC_DNR;
+			break;
+		}
 		nvmet_set_result(req,
 			(subsys->max_qid - 1) | ((subsys->max_qid - 1) << 16));
 		break;
+	}
 	case NVME_FEAT_KATO:
 		status = nvmet_set_feat_kato(req);
 		break;
-- 
2.16.5


_______________________________________________
linux-nvme mailing list
linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme

             reply	other threads:[~2020-02-27 14:17 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-27 14:16 amit.engel [this message]
2020-02-27 23:16 ` [PATCH] nvmet: return Invalid Field error on set features cmd fid 07h Sagi Grimberg
2020-02-28 12:53   ` Engel, Amit
  -- strict thread matches above, loose matches on Subject: below --
2020-02-28 12:52 amit.engel
2020-02-28 20:33 ` Sagi Grimberg
2020-03-01  0:30   ` Chaitanya Kulkarni
2020-03-01  4:47     ` Engel, Amit

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200227141652.80584-1-amit.engel@dell.com \
    --to=amit.engel@dell.com \
    --cc=linux-nvme@lists.infradead.org \
    --cc=sagi@grimberg.me \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox