Package: linux-image-6.12.1+debian+tj
Followup-For: Bug #1076372
X-Debbugs-Cc: tj.iam...@proton.me

This patch ought to enable forcing MDTS for *all* NVME devices. Untested
but applies on master and back to v6.3.7 at least, and builds for
master.
diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
index 249914b90dbfa..0a0460e582f28 100644
--- a/drivers/nvme/host/core.c
+++ b/drivers/nvme/host/core.c
@@ -44,6 +44,10 @@ struct nvme_ns_info {
        bool is_removed;
 };
 
+static u8 nvme_id_mdts = 0;
+module_param_named(id_mdts, nvme_id_mdts, byte, 0644);
+MODULE_PARM_DESC(id_mdts, "force Identify MDTS value");
+
 unsigned int admin_timeout = 60;
 module_param(admin_timeout, uint, 0644);
 MODULE_PARM_DESC(admin_timeout, "timeout in seconds for admin commands");
@@ -3324,6 +3328,10 @@ static int nvme_init_identify(struct nvme_ctrl *ctrl)
 
        atomic_set(&ctrl->abort_limit, id->acl + 1);
        ctrl->vwc = id->vwc;
+       if (nvme_id_mdts) {
+               dev_warn(ctrl->device, "forcingi ID MDTS from %d to %d\n", 
id->mdts, nvme_id_mdts);
+               id->mdts = nvme_id_mdts;
+       }
        if (id->mdts)
                max_hw_sectors = nvme_mps_to_sectors(ctrl, id->mdts);
        else

Reply via email to