[PATCH] Introduce NVMe quirk for multiple Micron MTFDKBA2T0TFH SSDs

Leo Savernik l.savernik at aon.at
Tue Jun 21 08:49:02 PDT 2022


Longterm kernel 5.15 recognises only first of three installed 2TB Micron 
MTFDKBA2T0TFH SSDs.

lspci:
04:00.0 Non-Volatile memory controller: Micron Technology Inc Device 5407
05:00.0 Non-Volatile memory controller: Micron Technology Inc Device 5407
06:00.0 Non-Volatile memory controller: Micron Technology Inc Device 5407

dmesg:
Jun 09 03:33:08 kubuntu kernel: nvme 0000:04:00.0: platform quirk: setting 
simple suspend
Jun 09 03:33:08 kubuntu kernel: nvme nvme0: pci function 0000:04:00.0
Jun 09 03:33:08 kubuntu kernel: nvme 0000:06:00.0: platform quirk: setting 
simple suspend
Jun 09 03:33:08 kubuntu kernel: nvme nvme1: pci function 0000:06:00.0
Jun 09 03:33:08 kubuntu kernel: nvme 0000:05:00.0: platform quirk: setting 
simple suspend
Jun 09 03:33:08 kubuntu kernel: nvme nvme2: pci function 0000:05:00.0
...
Jun 09 03:33:08 kubuntu kernel: nvme nvme1: Duplicate cntlid 0 with nvme0, 
rejecting
Jun 09 03:33:08 kubuntu kernel: nvme nvme1: Removing after probe failure 
status: -22
Jun 09 03:33:08 kubuntu kernel: nvme nvme2: Duplicate cntlid 0 with nvme0, 
rejecting
Jun 09 03:33:08 kubuntu kernel: nvme nvme2: Removing after probe failure 
status: -22
...
Jun 09 03:33:08 kubuntu kernel: nvme nvme0: 16/0/0 default/read/poll queues
Jun 09 03:33:08 kubuntu kernel:  nvme0n1: p1 p2 p3
...

Effectively, only the first NVMe device is recognised. The NVMe driver 
supports a quirks flag NVME_QUIRK_IGNORE_DEV_SUBNQN that when applied to 
the kernel makes all Micron MTFDKBA2T0TFH devices accessible.

I've applied this patch to Ubuntu kernel 5.15.0-25 as well as latest 
longterm 5.15.48 and have been using the three NVMe devices in an LVM array 
since without flaws. The patch also applies cleanly against mainline 
5.19-rc1.

See https://bugzilla.kernel.org/show_bug.cgi?id=216147 for additional 
details.

Lenovo seems to equip its Notebooks with Micron NVMe in quantity, 
therefore, this patch would make multiple Micron MTFDKBA2T0TFH model 
devices work out of the box.

Signed-off-by: Leo Savernik <l.savernik at aon.at>
---

diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c
index b925a5f4afc3..2e5c33f3b868 100644
--- a/drivers/nvme/host/pci.c
+++ b/drivers/nvme/host/pci.c
@@ -3372,5 +3372,7 @@ static const struct pci_device_id nvme_id_table[] = { 
NVME_QUIRK_128_BYTES_SQES |
 				NVME_QUIRK_NO_DEEPEST_PS |
 				NVME_QUIRK_IGNORE_DEV_SUBNQN, },
+	{ PCI_DEVICE(0x1344, 0x5407), /* Micron Technology Inc NVMe SSD */
+		.driver_data = NVME_QUIRK_IGNORE_DEV_SUBNQN },
 	{ PCI_DEVICE_CLASS(PCI_CLASS_STORAGE_EXPRESS, 0xffffff) },
 	{ 0, }
 };




More information about the Linux-nvme mailing list