2022-11-16 17:47:07

by August Wikerfors

[permalink] [raw]
Subject: [PATCH] nvme-pci: add NVME_QUIRK_BOGUS_NID for Samsung PM9B1 256G and 512G

The Samsung PM9B1 512G SSD found in some Lenovo Yoga 7 14ARB7 laptop units
reports eui as 0001000200030004 when resuming from s2idle, causing the
device to be removed with this error in dmesg:

nvme nvme0: identifiers changed for nsid 1

To fix this, add a quirk to ignore namespace identifiers for this device.

Signed-off-by: August Wikerfors <[email protected]>
---
drivers/nvme/host/pci.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c
index f4335519399d..0af51b85c323 100644
--- a/drivers/nvme/host/pci.c
+++ b/drivers/nvme/host/pci.c
@@ -3500,7 +3500,8 @@ static const struct pci_device_id nvme_id_table[] = {
{ PCI_DEVICE(0x1d97, 0x2263), /* SPCC */
.driver_data = NVME_QUIRK_DISABLE_WRITE_ZEROES, },
{ PCI_DEVICE(0x144d, 0xa80b), /* Samsung PM9B1 256G and 512G */
- .driver_data = NVME_QUIRK_DISABLE_WRITE_ZEROES, },
+ .driver_data = NVME_QUIRK_DISABLE_WRITE_ZEROES |
+ NVME_QUIRK_BOGUS_NID, },
{ PCI_DEVICE(0x144d, 0xa809), /* Samsung MZALQ256HBJD 256G */
.driver_data = NVME_QUIRK_DISABLE_WRITE_ZEROES, },
{ PCI_DEVICE(0x1cc4, 0x6303), /* UMIS RPJTJ512MGE1QDY 512G */
--
2.38.1



2022-11-16 17:56:13

by Christoph Hellwig

[permalink] [raw]
Subject: Re: [PATCH] nvme-pci: add NVME_QUIRK_BOGUS_NID for Samsung PM9B1 256G and 512G

On Wed, Nov 16, 2022 at 06:17:27PM +0100, August Wikerfors wrote:
> The Samsung PM9B1 512G SSD found in some Lenovo Yoga 7 14ARB7 laptop units
> reports eui as 0001000200030004 when resuming from s2idle, causing the
> device to be removed with this error in dmesg:
>
> nvme nvme0: identifiers changed for nsid 1

What EUI did it report before? Is the identifier stable after
multiple resume cycles?

Can some of the Samsung folks here reach out to the relevant firmware
team to see if they have any clues?

2022-11-16 18:28:05

by August Wikerfors

[permalink] [raw]
Subject: Re: [PATCH] nvme-pci: add NVME_QUIRK_BOGUS_NID for Samsung PM9B1 256G and 512G

On 2022-11-16 18:19, Christoph Hellwig wrote:
> On Wed, Nov 16, 2022 at 06:17:27PM +0100, August Wikerfors wrote:
>> The Samsung PM9B1 512G SSD found in some Lenovo Yoga 7 14ARB7 laptop units
>> reports eui as 0001000200030004 when resuming from s2idle, causing the
>> device to be removed with this error in dmesg:
>>
>> nvme nvme0: identifiers changed for nsid 1
>
> What EUI did it report before? Is the identifier stable after
> multiple resume cycles?
The original EUI is "002538e621b440e5". Using the patches from [1] and
[2] for debugging I consistently get this output on every resume:
> eui changed from 002538e621b440e5 to 0001000200030004
[1] https://lore.kernel.org/all/[email protected]/
[2] https://lore.kernel.org/all/[email protected]/

2022-11-17 09:45:23

by August Wikerfors

[permalink] [raw]
Subject: Re: [PATCH] nvme-pci: add NVME_QUIRK_BOGUS_NID for Samsung PM9B1 256G and 512G

On 2022-11-17 08:13, Kanchan Joshi wrote:
> On Wed, Nov 16, 2022 at 06:42:43PM +0100, August Wikerfors wrote:
>> On 2022-11-16 18:19, Christoph Hellwig wrote:
>>> On Wed, Nov 16, 2022 at 06:17:27PM +0100, August Wikerfors wrote:
>>>> The Samsung PM9B1 512G SSD found in some Lenovo Yoga 7 14ARB7 laptop
>>>> units
>>>> reports eui as 0001000200030004 when resuming from s2idle, causing the
>>>> device to be removed with this error in dmesg:
>>>>
>>>> nvme nvme0: identifiers changed for nsid 1
>>>
>>> What EUI did it report before? Is the identifier stable after
>>> multiple resume cycles?
>> The original EUI is "002538e621b440e5". Using the patches from [1] and
>> [2] for debugging I consistently get this output on every resume:
>>> eui changed from 002538e621b440e5 to 0001000200030004
>
> Can you please share the firmware version of this SSD?

The firmware version is 7L1QHXC7.

2022-12-20 11:44:33

by August Wikerfors

[permalink] [raw]
Subject: Re: [PATCH] nvme-pci: add NVME_QUIRK_BOGUS_NID for Samsung PM9B1 256G and 512G

On 2022-12-06 06:59, Kanchan Joshi wrote:
> On Thu, Nov 17, 2022 at 08:49:51AM +0530, Kanchan Joshi wrote:
>> On Wed, Nov 16, 2022 at 06:19:35PM +0100, Christoph Hellwig wrote:
>>> On Wed, Nov 16, 2022 at 06:17:27PM +0100, August Wikerfors wrote:
>>>> The Samsung PM9B1 512G SSD found in some Lenovo Yoga 7 14ARB7 laptop
>>>> units
>>>> reports eui as 0001000200030004 when resuming from s2idle, causing the
>>>> device to be removed with this error in dmesg:
>>>>
>>>> nvme nvme0: identifiers changed for nsid 1
>>>
>>> What EUI did it report before? Is the identifier stable after
>>> multiple resume cycles?
>>>
>>> Can some of the Samsung folks here reach out to the relevant firmware
>>> team to see if they have any clues?
>>
>> I will check.
>
> Took more time than I wanted. Firmware team mentioned that issue existed
> in this firmware. This is fixed in new firmware, but bit of travel time
> is involved when official release from OEM (Lenovo) comes out.
>
> Hope the information is sufficient, and quirk can go in.
>
> If required, Acked-by: Kanchan Joshi <[email protected]>

Ping, anything left for me to do before this can be merged?

Regards,
August Wikerfors

2022-12-21 09:09:27

by Christoph Hellwig

[permalink] [raw]
Subject: Re: [PATCH] nvme-pci: add NVME_QUIRK_BOGUS_NID for Samsung PM9B1 256G and 512G

On Tue, Dec 20, 2022 at 12:30:39PM +0100, August Wikerfors wrote:
>> Took more time than I wanted. Firmware team mentioned that issue existed
>> in this firmware. This is fixed in new firmware, but bit of travel time
>> is involved when official release from OEM (Lenovo) comes out.
>>
>> Hope the information is sufficient, and quirk can go in.
>>
>> If required, Acked-by: Kanchan Joshi <[email protected]>
>
> Ping, anything left for me to do before this can be merged?

We don't want to add quirks for things fixed by firmware updates,
see the recently posted features and quirks policy.