Samsung PM1733 MZXL53T2HBLS-00AH3 and duplicate id's may need a quirk

Laurence Oberman loberman at redhat.com
Wed Apr 30 12:48:38 PDT 2025


On Wed, 2025-04-30 at 12:14 -0400, Laurence Oberman wrote:
> Hello
> 
> A customer was attempting to create additional namespaces on this
> device and it failed with 
> 
> [ 1120.516952] nvme nvme0: rescanning namespaces.
> [ 1120.531873] nvme nvme0: duplicate IDs in subsystem for nsid 2
> [ 1120.573891] nvme nvme0: duplicate IDs in subsystem for nsid 4
> [ 1120.587822] nvme nvme0: duplicate IDs in subsystem for nsid 5
> [ 1120.601886] nvme nvme0: duplicate IDs in subsystem for nsid 6
> 
> I added some debug and this was flagged here
> 
> we trigger on this and we return -ENVAL
> 
> 
>                 if (has_eui64 &&
>                     memcmp(&ids->eui64, &h->ids.eui64, sizeof(ids-
> > eui64)) == 0) {
>                         printk("RHDEBUG: ids->eui64: %pUB h-
> > ids.eui64: %pUB\n",&ids->uuid,&h->ids.uuid);
>                         return -EINVAL;
>                 }
> 
> This leads to the code here bailing with the duplicate id message
> 
> static int nvme_init_ns_head(struct nvme_ns *ns, struct nvme_ns_info
> *info)
> {
>         struct nvme_ctrl *ctrl = ns->ctrl;
>         struct nvme_ns_head *head = NULL;
>         int ret;
> 
> ..
> ..
>         mutex_lock(&ctrl->subsys->lock);
>         head = nvme_find_ns_head(ctrl, info->nsid);
>         if (!head) {
>                 ret = nvme_subsys_check_duplicate_ids(ctrl->subsys,
> &info->ids);
>                 if (ret) {
>                         dev_err(ctrl->device,
>                                 "duplicate IDs in subsystem for nsid
> %d\n",
>                                 info->nsid);
>                         goto out_unlock;
>                 }
> ..
> ..
> out_unlock:
>         mutex_unlock(&ctrl->subsys->lock);
>         return ret;
> }
> 
> My question do we need to add yet another NVME_QUIRK_BOGUS_NID, for
> this device model.
> 
> Has anybody else seen this
> 
> Regards
> Laurence


Quick follow up, This is not a patch yet, just an update to get
feedback first.

The quirk works
Would it be acceptable to add this and if so I will send an official
patch


diff -Nurp linux-5.14.0-503.38.1.el9_5.orig/drivers/nvme/host/pci.c
linux-5.14.0-503.38.1.el9_5/drivers/nvme/host/pci.c
--- linux-5.14.0-503.38.1.el9_5.orig/drivers/nvme/host/pci.c	2025-
04-13 20:22:20.000000000 -0400
+++ linux-5.14.0-503.38.1.el9_5/drivers/nvme/host/pci.c	2025-04-30
12:44:11.068963106 -0400
@@ -3432,6 +3432,8 @@ static const struct pci_device_id nvme_i
 		.driver_data = NVME_QUIRK_DISABLE_WRITE_ZEROES, },
 	{ PCI_DEVICE(0x144d, 0xa802),   /* Samsung SM953 */
 		.driver_data = NVME_QUIRK_BOGUS_NID, },
+	{ PCI_DEVICE(0x144d, 0xa824),   /* Samsung  PM1733
MZXL53T2HBLS-00AH3 */
+		.driver_data = NVME_QUIRK_BOGUS_NID, },
 	{ PCI_DEVICE(0x1cc4, 0x6303),   /* UMIS RPJTJ512MGE1QDY 512G
*/
 		.driver_data = NVME_QUIRK_DISABLE_WRITE_ZEROES, },
 	{ PCI_DEVICE(0x1cc4, 0x6302),   /* UMIS RPJTJ256MGE1QDY 256G
*/


More information about the Linux-nvme mailing list