| From 1629de0e0373e04d68e88e6d9d3071fbf70b7ea8 Mon Sep 17 00:00:00 2001 |
| From: Pablo Greco <pgreco@centosproject.org> |
| Date: Sat, 25 Jun 2022 09:15:02 -0300 |
| Subject: nvme-pci: add NVME_QUIRK_BOGUS_NID for ADATA XPG SX6000LNP (AKA SPECTRIX S40G) |
| |
| From: Pablo Greco <pgreco@centosproject.org> |
| |
| commit 1629de0e0373e04d68e88e6d9d3071fbf70b7ea8 upstream. |
| |
| ADATA XPG SPECTRIX S40G drives report bogus eui64 values that appear to |
| be the same across drives in one system. Quirk them out so they are |
| not marked as "non globally unique" duplicates. |
| |
| Before: |
| [ 2.258919] nvme nvme1: pci function 0000:06:00.0 |
| [ 2.264898] nvme nvme2: pci function 0000:05:00.0 |
| [ 2.323235] nvme nvme1: failed to set APST feature (2) |
| [ 2.326153] nvme nvme2: failed to set APST feature (2) |
| [ 2.333935] nvme nvme1: allocated 64 MiB host memory buffer. |
| [ 2.336492] nvme nvme2: allocated 64 MiB host memory buffer. |
| [ 2.339611] nvme nvme1: 7/0/0 default/read/poll queues |
| [ 2.341805] nvme nvme2: 7/0/0 default/read/poll queues |
| [ 2.346114] nvme1n1: p1 |
| [ 2.347197] nvme nvme2: globally duplicate IDs for nsid 1 |
| After: |
| [ 2.427715] nvme nvme1: pci function 0000:06:00.0 |
| [ 2.427771] nvme nvme2: pci function 0000:05:00.0 |
| [ 2.488154] nvme nvme2: failed to set APST feature (2) |
| [ 2.489895] nvme nvme1: failed to set APST feature (2) |
| [ 2.498773] nvme nvme2: allocated 64 MiB host memory buffer. |
| [ 2.500587] nvme nvme1: allocated 64 MiB host memory buffer. |
| [ 2.504113] nvme nvme2: 7/0/0 default/read/poll queues |
| [ 2.507026] nvme nvme1: 7/0/0 default/read/poll queues |
| [ 2.509467] nvme nvme2: Ignoring bogus Namespace Identifiers |
| [ 2.512804] nvme nvme1: Ignoring bogus Namespace Identifiers |
| [ 2.513698] nvme1n1: p1 |
| |
| Signed-off-by: Pablo Greco <pgreco@centosproject.org> |
| Reviewed-by: Keith Busch <kbusch@kernel.org> |
| Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com> |
| Cc: <stable@vger.kernel.org> |
| Signed-off-by: Christoph Hellwig <hch@lst.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/nvme/host/pci.c | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/nvme/host/pci.c |
| +++ b/drivers/nvme/host/pci.c |
| @@ -3342,7 +3342,8 @@ static const struct pci_device_id nvme_i |
| .driver_data = NVME_QUIRK_NO_NS_DESC_LIST | |
| NVME_QUIRK_IGNORE_DEV_SUBNQN, }, |
| { PCI_DEVICE(0x10ec, 0x5762), /* ADATA SX6000LNP */ |
| - .driver_data = NVME_QUIRK_IGNORE_DEV_SUBNQN, }, |
| + .driver_data = NVME_QUIRK_IGNORE_DEV_SUBNQN | |
| + NVME_QUIRK_BOGUS_NID, }, |
| { PCI_DEVICE(0x1cc1, 0x8201), /* ADATA SX8200PNP 512GB */ |
| .driver_data = NVME_QUIRK_NO_DEEPEST_PS | |
| NVME_QUIRK_IGNORE_DEV_SUBNQN, }, |