nvme: add I/O characteristics fields
authorBart Van Assche <bvanassche@acm.org>
Fri, 28 Jun 2019 16:53:29 +0000 (09:53 -0700)
committerChristoph Hellwig <hch@lst.de>
Tue, 9 Jul 2019 21:15:37 +0000 (14:15 -0700)
Several new fields have been introduced in version 1.4 of the NVMe spec
at offsets that were defined as reserved in version 1.3d of the NVMe
spec. Update the definition of the nvme_id_ns data structure such that
it is in sync with version 1.4 of the NVMe spec. This change preserves
backwards compatibility.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Reviewed-by: Keith Busch <kbusch@kernel.org>
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
include/linux/nvme.h

index d98b2d8baf4e5db4407a091f8d5c1ea1b7f5d187..01aa6a6c241d2a180ad6ba979de24d17feeb487b 100644 (file)
@@ -315,7 +315,7 @@ struct nvme_id_ns {
        __u8                    nmic;
        __u8                    rescap;
        __u8                    fpi;
-       __u8                    rsvd33;
+       __u8                    dlfeat;
        __le16                  nawun;
        __le16                  nawupf;
        __le16                  nacwu;
@@ -324,11 +324,17 @@ struct nvme_id_ns {
        __le16                  nabspf;
        __le16                  noiob;
        __u8                    nvmcap[16];
-       __u8                    rsvd64[28];
+       __le16                  npwg;
+       __le16                  npwa;
+       __le16                  npdg;
+       __le16                  npda;
+       __le16                  nows;
+       __u8                    rsvd74[18];
        __le32                  anagrpid;
        __u8                    rsvd96[3];
        __u8                    nsattr;
-       __u8                    rsvd100[4];
+       __le16                  nvmsetid;
+       __le16                  endgid;
        __u8                    nguid[16];
        __u8                    eui64[8];
        struct nvme_lbaf        lbaf[16];