Re: [PATCH] nvme: validate cntlid's only for nvme >= 1.1.0

From: Christoph Hellwig
Date: Tue Jun 30 2020 - 09:36:15 EST


On Tue, Jun 30, 2020 at 03:33:58PM +0200, Christoph Hellwig wrote:
> On Tue, Jun 30, 2020 at 12:29:23PM +0000, Maximilian Heyne wrote:
> > Controller ID's (cntlid) for NVMe devices were introduced in version
> > 1.1.0 of the specification. Controllers that follow the older 1.0.0 spec
> > don't set this field so it doesn't make sense to validate it. On the
> > contrary, when using SR-IOV this check breaks VFs as they are all part
> > of the same NVMe subsystem.
> >
> > Signed-off-by: Maximilian Heyne <mheyne@xxxxxxxxx>
> > Cc: <stable@xxxxxxxxxxxxxxx> # 5.4+
>
> The first hunk looks ok, the second doesn't make sense as fabrics
> was only added with NVMe 1.2.2. I can fix it up when applying if you
> are ok with that.
>
> But you guys really shouldn't be doing SR-IOV with 1.0 controllers
> independent of this..

And actually - 1.0 did not have the concept of a subsystem. So having
a duplicate serial number for a 1.0 controller actually is a pretty
nasty bug. Can you point me to this broken controller? Do you think
the OEM could fix it up to report a proper version number and controller
ID?