]> git.baikalelectronics.ru Git - kernel.git/commit
NVMe: Update SCSI Inquiry VPD 83h translation
authorKeith Busch <keith.busch@intel.com>
Thu, 19 Feb 2015 20:42:14 +0000 (13:42 -0700)
committerKeith Busch <keith.busch@intel.com>
Thu, 19 Feb 2015 23:15:35 +0000 (16:15 -0700)
commite80b9dffdc0414242d7bb74302bb004e93c3c1ca
tree3d58e5f342f0c1dc3a01e85ff565e3496f099d3a
parent620c6510e67481c984627b057028c2a30eb351b8
NVMe: Update SCSI Inquiry VPD 83h translation

The original translation created collisions on Inquiry VPD 83 for many
existing devices. Newer specifications provide other ways to translate
based on the device's version can be used to create unique identifiers.

Version 1.1 provides an EUI64 field that uniquely identifies each
namespace, and 1.2 added the longer NGUID field for the same reason.
Both follow the IEEE EUI format and readily translate to the SCSI device
identification EUI designator type 2h. For devices implementing either,
the translation will use this type, defaulting to the EUI64 8-byte type if
implemented then NGUID's 16 byte version if not. If neither are provided,
the 1.0 translation is used, and is updated to use the SCSI String format
to guarantee a unique identifier.

Knowing when to use the new fields depends on the nvme controller's
revision. The NVME_VS macro was not decoding this correctly, so that is
fixed in this patch and moved to a more appropriate place.

Since the Identify Namespace structure required an update for the NGUID
field, this patch adds the remaining new 1.2 fields to the structure.

Signed-off-by: Keith Busch <keith.busch@intel.com>
drivers/block/nvme-scsi.c
include/linux/nvme.h
include/uapi/linux/nvme.h