[PATCH] nvme: Add quirk to fix hang issue on SanDisk SSD

Saúl Valdelvira saul at saulv.es
Sat Jan 13 13:30:12 PST 2024


The WDC PC SN520 SSD hangs on boot when APST is enabled, unless the
nvme_core.default_ps_max_latency_us kernel parameter is set to a lower
value. Add an entry for this drive to the 'core_quirks' table with the
NO_DEEPEST_PS quirk to fix that.

Signed-off-by: Saúl Valdelvira <saul at saulv.es>
---
This patch fixes an issue I've always had when running Linux on my
Acer Extensa 215-22 laptop. I think it might be useful to other people
with the same hardware as mine.
This is the first time I submit a patch to the kernel, so I hope I did
everything correctly and that I'm not wasting your time.

 drivers/nvme/host/core.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
index 0af612387083..496563704c63 100644
--- a/drivers/nvme/host/core.c
+++ b/drivers/nvme/host/core.c
@@ -2626,7 +2626,17 @@ static const struct nvme_core_quirk_entry core_quirks[] = {
 		.quirks = NVME_QUIRK_DELAY_BEFORE_CHK_RDY |
 			  NVME_QUIRK_NO_DEEPEST_PS |
 			  NVME_QUIRK_IGNORE_DEV_SUBNQN,
-	}
+	},
+	{
+		/*
+		 * This SanDisk SSD hangs on boot unless the
+		 * nvme_core.default_ps_max_latency_us kernel parameter is
+		 * set to a lower value.
+		 */
+		.vid = 0x15b7,
+		.mn = "WDC PC SN520 SDAPNUW-512G-1014",
+		.quirks = NVME_QUIRK_NO_DEEPEST_PS,
+	},
 };

 /* match is null-terminated but idstr is space-padded. */
--
2.43.0




More information about the Linux-nvme mailing list