Re: SK hynix BC511: warning: nvme nvme0: missing or invalid SUBNQN field.

From: Paul Menzel
Date: Mon Oct 11 2021 - 09:08:19 EST


Dear Keith,


Am 17.08.21 um 19:02 schrieb Keith Busch:
On Tue, Aug 17, 2021 at 06:53:15PM +0200, Paul Menzel wrote:
[cc: +Dell.Client.Kernel@xxxxxxxx as it’s a Dell device]
Am 17.08.21 um 18:16 schrieb Keith Busch:
On Tue, Aug 17, 2021 at 05:10:40PM +0200, Paul Menzel wrote:
On a Dell OptiPlex 7780 AIO/04G47W (BIOS 1.6.3 03/08/2021) Linux 5.10.47
shows the warning below:

$ dmesg | grep nvme
[ 3.015392] nvme 0000:02:00.0: platform quirk: setting simple suspend
[ 3.021861] nvme nvme0: pci function 0000:02:00.0
[ 3.026593] ahci 0000:00:17.0: version 3.0
[ 3.026922] ahci 0000:00:17.0: AHCI 0001.0301 32 slots 1 ports 6 Gbps 0x1 impl SATA mode
[ 3.035020] ahci 0000:00:17.0: flags: 64bit ncq sntf pm clo only pio slum part ems deso sadm sds apst
[ 3.035219] nvme nvme0: missing or invalid SUBNQN field.
[ 3.044518] scsi host0: ahci
[ 3.051632] nvme nvme0: 12/0/0 default/read/poll queues
[ 3.052590] ata1: SATA max UDMA/133 abar m2048@0xd1339000 port 0xd1339100 irq 125
[ 3.058538] nvme0n1: p1 p2 p3

Should it be added to the quirk list in `drivers/nvme/host/pci.c` or is it a
real issues, the manufacturer should fix? If so, do you have SK Hynix
contacts?

It would be great if device makers would be spec compliant, but the
driver will continue to work with the device the same whether you add
the quirk or not.

Could you please point me to the NVMe specification section, so I can refer
to it, when contacting the manufacturer?

In the section for "Identify Controller Data Structure" (section
5.17.2.1, figure 257 in spec version 2.0), the NQN definition says:

"Support for this field is mandatory if the controller supports revision
1.2.1 or later"

The driver does confirm the controller's reported revision meets this
requirement before emitting the warning.

The Dell support came back to me, and said, that Hynix refuses to publish a fixed firmware unless I show them a use case, where I need that field.

Can somebody think of a use case, and why this field was made mandatory in the specification?


Kind regards,

Paul