[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