[PATCH] fix: nvme_update_ns_info method should be called even if nvme_ms_ids_equal return false

Christoph Hellwig hch at lst.de
Fri Apr 8 09:04:24 PDT 2022


On Fri, Apr 08, 2022 at 09:18:19AM -0600, Keith Busch wrote:
> On Fri, Apr 08, 2022 at 10:07:21AM +0200, Christoph Hellwig wrote:
> > On Fri, Apr 08, 2022 at 03:56:49PM +0800, 金韬 wrote:
> > > This is output from dmesg. Seems that "eui" has changed.
> > >
> > > [    2.086226] loop0: detected capacity change from 0 to 8
> > > [   26.577001] eui changed from 0100000000000000 to 0000000000000001
> > > [   26.577003] nvme nvme0: identifiers changed for nsid 1
> > 
> > Ok, looks like the device is broken and changes the EUID after power
> > cycles.  Can you send the output of lspci -v?
> > 
> > Also just out of curiousity, does the ID keep changing if you do more
> > suspend cycles?
> 
> The eui isn't legit in the first place (no OUI), and appears to be swqpping the

Yes.

> byte order during resume. This should be reported to the vendor.

Well, the id-ns output posted earlier shows the same output before and
after resume.  Which is really weird.

Either way we'll have to quirk it some way.

Just to pointpoint this down a bit, what does

   nvme ns-descs /dev/nvme0n1

report?  I wonder if we get different IDs from the different methods
to retrive them given that namespace allocation looks at the
Namespace Identification Descriptor last, while revalidation only
looks at Identify Namespace.



More information about the Linux-nvme mailing list