[PATCH] Revert "nvme: verify MNAN value if ANA is enabled"
Chaitanya Kulkarni
Chaitanya.Kulkarni at wdc.com
Wed Jun 9 19:55:08 PDT 2021
Daniel,
On 6/9/21 19:45, Chaitanya Kulkarni wrote:
> This reverts commit 8872c159c7a83daf633768cee7a7ef7154010341. This is
> needed to move forward with the blktests for now, without this patch
> all the testcases result in the error :-
>
> [ 3502.072798] nvme nvme1: Invalid MNAN value 1024
>
> Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni at wdc.com>
Thinking about the code again I think following should work :-
diff --git a/drivers/nvme/host/multipath.c b/drivers/nvme/host/multipath.c
index 23573fe3fc7d..4277f1554bd5 100644
--- a/drivers/nvme/host/multipath.c
+++ b/drivers/nvme/host/multipath.c
@@ -813,7 +813,7 @@ int nvme_mpath_init_identify(struct nvme_ctrl *ctrl,
struct nvme_id_ctrl *id)
!(ctrl->subsys->cmic & NVME_CTRL_CMIC_ANA))
return 0;
- if (!ctrl->max_namespaces ||
+ if (ctrl->max_namespaces &&
ctrl->max_namespaces > le32_to_cpu(id->nn)) {
dev_err(ctrl->device,
"Invalid MNAN value %u\n", ctrl->max_namespaces);
diff --git a/drivers/nvme/target/admin-cmd.c
b/drivers/nvme/target/admin-cmd.c
index cd60a8184d04..a8ec377bb68d 100644
--- a/drivers/nvme/target/admin-cmd.c
+++ b/drivers/nvme/target/admin-cmd.c
@@ -394,7 +394,7 @@ static void nvmet_execute_identify_ctrl(struct
nvmet_req *req)
id->maxcmd = cpu_to_le16(NVMET_MAX_CMD);
id->nn = cpu_to_le32(ctrl->subsys->max_nsid);
- id->mnan = cpu_to_le32(NVMET_MAX_NAMESPACES);
+ id->mnan = cpu_to_le32(ctrl->subsys->max_nsid);
id->oncs = cpu_to_le16(NVME_CTRL_ONCS_DSM |
NVME_CTRL_ONCS_WRITE_ZEROES);
If it does, then we can drop the this revert and I'll send above 2 fixes.
Daniel, can you please confirm ?
More information about the Linux-nvme
mailing list