]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
nvme.h: add support for ns write protect definitions
authorChaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Wed, 8 Aug 2018 06:01:05 +0000 (23:01 -0700)
committerChristoph Hellwig <hch@lst.de>
Wed, 8 Aug 2018 09:55:45 +0000 (11:55 +0200)
Add various definitions from NVMe 1.3 TP 4005.

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
include/linux/nvme.h

index a661861e9d56f1a844471a027aa388fa231fb848..68e91ef5494c11783ebc32057fd99ee29bca47b2 100644 (file)
@@ -259,7 +259,7 @@ struct nvme_id_ctrl {
        __le16                  awun;
        __le16                  awupf;
        __u8                    nvscc;
-       __u8                    rsvd531;
+       __u8                    nwpc;
        __le16                  acwu;
        __u8                    rsvd534[2];
        __le32                  sgls;
@@ -320,7 +320,9 @@ struct nvme_id_ns {
        __u8                    nvmcap[16];
        __u8                    rsvd64[28];
        __le32                  anagrpid;
-       __u8                    rsvd96[8];
+       __u8                    rsvd96[3];
+       __u8                    nsattr;
+       __u8                    rsvd100[4];
        __u8                    nguid[16];
        __u8                    eui64[8];
        struct nvme_lbaf        lbaf[16];
@@ -794,6 +796,7 @@ enum {
        NVME_FEAT_HOST_ID       = 0x81,
        NVME_FEAT_RESV_MASK     = 0x82,
        NVME_FEAT_RESV_PERSIST  = 0x83,
+       NVME_FEAT_WRITE_PROTECT = 0x84,
        NVME_LOG_ERROR          = 0x01,
        NVME_LOG_SMART          = 0x02,
        NVME_LOG_FW_SLOT        = 0x03,
@@ -807,6 +810,14 @@ enum {
        NVME_FWACT_ACTV         = (2 << 3),
 };
 
+/* NVMe Namespace Write Protect State */
+enum {
+       NVME_NS_NO_WRITE_PROTECT = 0,
+       NVME_NS_WRITE_PROTECT,
+       NVME_NS_WRITE_PROTECT_POWER_CYCLE,
+       NVME_NS_WRITE_PROTECT_PERMANENT,
+};
+
 #define NVME_MAX_CHANGED_NAMESPACES    1024
 
 struct nvme_identify {
@@ -1153,6 +1164,8 @@ enum {
        NVME_SC_SGL_INVALID_OFFSET      = 0x16,
        NVME_SC_SGL_INVALID_SUBTYPE     = 0x17,
 
+       NVME_SC_NS_WRITE_PROTECTED      = 0x20,
+
        NVME_SC_LBA_RANGE               = 0x80,
        NVME_SC_CAP_EXCEEDED            = 0x81,
        NVME_SC_NS_NOT_READY            = 0x82,