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