aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/nvme/target/admin-cmd.c2
-rw-r--r--drivers/nvme/target/discovery.c2
-rw-r--r--include/linux/nvme.h33
3 files changed, 29 insertions, 8 deletions
diff --git a/drivers/nvme/target/admin-cmd.c b/drivers/nvme/target/admin-cmd.c
index 7ab9c9381b98..6944f246e562 100644
--- a/drivers/nvme/target/admin-cmd.c
+++ b/drivers/nvme/target/admin-cmd.c
@@ -199,7 +199,7 @@ static void nvmet_execute_identify_ctrl(struct nvmet_req *req)
199 */ 199 */
200 200
201 /* we support multiple ports and multiples hosts: */ 201 /* we support multiple ports and multiples hosts: */
202 id->mic = (1 << 0) | (1 << 1); 202 id->cmic = (1 << 0) | (1 << 1);
203 203
204 /* no limit on data transfer sizes for now */ 204 /* no limit on data transfer sizes for now */
205 id->mdts = 0; 205 id->mdts = 0;
diff --git a/drivers/nvme/target/discovery.c b/drivers/nvme/target/discovery.c
index 6f65646e89cf..a6c25fbcff3f 100644
--- a/drivers/nvme/target/discovery.c
+++ b/drivers/nvme/target/discovery.c
@@ -54,7 +54,7 @@ static void nvmet_format_discovery_entry(struct nvmf_disc_rsp_page_hdr *hdr,
54 /* we support only dynamic controllers */ 54 /* we support only dynamic controllers */
55 e->cntlid = cpu_to_le16(NVME_CNTLID_DYNAMIC); 55 e->cntlid = cpu_to_le16(NVME_CNTLID_DYNAMIC);
56 e->asqsz = cpu_to_le16(NVMF_AQ_DEPTH); 56 e->asqsz = cpu_to_le16(NVMF_AQ_DEPTH);
57 e->nqntype = type; 57 e->subtype = type;
58 memcpy(e->trsvcid, port->disc_addr.trsvcid, NVMF_TRSVCID_SIZE); 58 memcpy(e->trsvcid, port->disc_addr.trsvcid, NVMF_TRSVCID_SIZE);
59 memcpy(e->traddr, port->disc_addr.traddr, NVMF_TRADDR_SIZE); 59 memcpy(e->traddr, port->disc_addr.traddr, NVMF_TRADDR_SIZE);
60 memcpy(e->tsas.common, port->disc_addr.tsas.common, NVMF_TSAS_SIZE); 60 memcpy(e->tsas.common, port->disc_addr.tsas.common, NVMF_TSAS_SIZE);
diff --git a/include/linux/nvme.h b/include/linux/nvme.h
index 086d196e68f7..989699641e10 100644
--- a/include/linux/nvme.h
+++ b/include/linux/nvme.h
@@ -182,7 +182,7 @@ struct nvme_id_ctrl {
182 char fr[8]; 182 char fr[8];
183 __u8 rab; 183 __u8 rab;
184 __u8 ieee[3]; 184 __u8 ieee[3];
185 __u8 mic; 185 __u8 cmic;
186 __u8 mdts; 186 __u8 mdts;
187 __le16 cntlid; 187 __le16 cntlid;
188 __le32 ver; 188 __le32 ver;
@@ -202,7 +202,13 @@ struct nvme_id_ctrl {
202 __u8 apsta; 202 __u8 apsta;
203 __le16 wctemp; 203 __le16 wctemp;
204 __le16 cctemp; 204 __le16 cctemp;
205 __u8 rsvd270[50]; 205 __le16 mtfa;
206 __le32 hmpre;
207 __le32 hmmin;
208 __u8 tnvmcap[16];
209 __u8 unvmcap[16];
210 __le32 rpmbs;
211 __u8 rsvd316[4];
206 __le16 kas; 212 __le16 kas;
207 __u8 rsvd322[190]; 213 __u8 rsvd322[190];
208 __u8 sqes; 214 __u8 sqes;
@@ -267,7 +273,7 @@ struct nvme_id_ns {
267 __le16 nabo; 273 __le16 nabo;
268 __le16 nabspf; 274 __le16 nabspf;
269 __u16 rsvd46; 275 __u16 rsvd46;
270 __le64 nvmcap[2]; 276 __u8 nvmcap[16];
271 __u8 rsvd64[40]; 277 __u8 rsvd64[40];
272 __u8 nguid[16]; 278 __u8 nguid[16];
273 __u8 eui64[8]; 279 __u8 eui64[8];
@@ -556,8 +562,10 @@ enum nvme_admin_opcode {
556 nvme_admin_set_features = 0x09, 562 nvme_admin_set_features = 0x09,
557 nvme_admin_get_features = 0x0a, 563 nvme_admin_get_features = 0x0a,
558 nvme_admin_async_event = 0x0c, 564 nvme_admin_async_event = 0x0c,
565 nvme_admin_ns_mgmt = 0x0d,
559 nvme_admin_activate_fw = 0x10, 566 nvme_admin_activate_fw = 0x10,
560 nvme_admin_download_fw = 0x11, 567 nvme_admin_download_fw = 0x11,
568 nvme_admin_ns_attach = 0x15,
561 nvme_admin_keep_alive = 0x18, 569 nvme_admin_keep_alive = 0x18,
562 nvme_admin_format_nvm = 0x80, 570 nvme_admin_format_nvm = 0x80,
563 nvme_admin_security_send = 0x81, 571 nvme_admin_security_send = 0x81,
@@ -583,6 +591,7 @@ enum {
583 NVME_FEAT_WRITE_ATOMIC = 0x0a, 591 NVME_FEAT_WRITE_ATOMIC = 0x0a,
584 NVME_FEAT_ASYNC_EVENT = 0x0b, 592 NVME_FEAT_ASYNC_EVENT = 0x0b,
585 NVME_FEAT_AUTO_PST = 0x0c, 593 NVME_FEAT_AUTO_PST = 0x0c,
594 NVME_FEAT_HOST_MEM_BUF = 0x0d,
586 NVME_FEAT_KATO = 0x0f, 595 NVME_FEAT_KATO = 0x0f,
587 NVME_FEAT_SW_PROGRESS = 0x80, 596 NVME_FEAT_SW_PROGRESS = 0x80,
588 NVME_FEAT_HOST_ID = 0x81, 597 NVME_FEAT_HOST_ID = 0x81,
@@ -745,7 +754,7 @@ struct nvmf_common_command {
745struct nvmf_disc_rsp_page_entry { 754struct nvmf_disc_rsp_page_entry {
746 __u8 trtype; 755 __u8 trtype;
747 __u8 adrfam; 756 __u8 adrfam;
748 __u8 nqntype; 757 __u8 subtype;
749 __u8 treq; 758 __u8 treq;
750 __le16 portid; 759 __le16 portid;
751 __le16 cntlid; 760 __le16 cntlid;
@@ -905,12 +914,23 @@ enum {
905 NVME_SC_INVALID_VECTOR = 0x108, 914 NVME_SC_INVALID_VECTOR = 0x108,
906 NVME_SC_INVALID_LOG_PAGE = 0x109, 915 NVME_SC_INVALID_LOG_PAGE = 0x109,
907 NVME_SC_INVALID_FORMAT = 0x10a, 916 NVME_SC_INVALID_FORMAT = 0x10a,
908 NVME_SC_FIRMWARE_NEEDS_RESET = 0x10b, 917 NVME_SC_FW_NEEDS_CONV_RESET = 0x10b,
909 NVME_SC_INVALID_QUEUE = 0x10c, 918 NVME_SC_INVALID_QUEUE = 0x10c,
910 NVME_SC_FEATURE_NOT_SAVEABLE = 0x10d, 919 NVME_SC_FEATURE_NOT_SAVEABLE = 0x10d,
911 NVME_SC_FEATURE_NOT_CHANGEABLE = 0x10e, 920 NVME_SC_FEATURE_NOT_CHANGEABLE = 0x10e,
912 NVME_SC_FEATURE_NOT_PER_NS = 0x10f, 921 NVME_SC_FEATURE_NOT_PER_NS = 0x10f,
913 NVME_SC_FW_NEEDS_RESET_SUBSYS = 0x110, 922 NVME_SC_FW_NEEDS_SUBSYS_RESET = 0x110,
923 NVME_SC_FW_NEEDS_RESET = 0x111,
924 NVME_SC_FW_NEEDS_MAX_TIME = 0x112,
925 NVME_SC_FW_ACIVATE_PROHIBITED = 0x113,
926 NVME_SC_OVERLAPPING_RANGE = 0x114,
927 NVME_SC_NS_INSUFFICENT_CAP = 0x115,
928 NVME_SC_NS_ID_UNAVAILABLE = 0x116,
929 NVME_SC_NS_ALREADY_ATTACHED = 0x118,
930 NVME_SC_NS_IS_PRIVATE = 0x119,
931 NVME_SC_NS_NOT_ATTACHED = 0x11a,
932 NVME_SC_THIN_PROV_NOT_SUPP = 0x11b,
933 NVME_SC_CTRL_LIST_INVALID = 0x11c,
914 934
915 /* 935 /*
916 * I/O Command Set Specific - NVM commands: 936 * I/O Command Set Specific - NVM commands:
@@ -941,6 +961,7 @@ enum {
941 NVME_SC_REFTAG_CHECK = 0x284, 961 NVME_SC_REFTAG_CHECK = 0x284,
942 NVME_SC_COMPARE_FAILED = 0x285, 962 NVME_SC_COMPARE_FAILED = 0x285,
943 NVME_SC_ACCESS_DENIED = 0x286, 963 NVME_SC_ACCESS_DENIED = 0x286,
964 NVME_SC_UNWRITTEN_BLOCK = 0x287,
944 965
945 NVME_SC_DNR = 0x4000, 966 NVME_SC_DNR = 0x4000,
946}; 967};