aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/nvme/target/admin-cmd.c2
-rw-r--r--drivers/nvme/target/core.c5
-rw-r--r--drivers/nvme/target/nvmet.h2
3 files changed, 4 insertions, 5 deletions
diff --git a/drivers/nvme/target/admin-cmd.c b/drivers/nvme/target/admin-cmd.c
index 35f930db3c02..f7ba006d6a65 100644
--- a/drivers/nvme/target/admin-cmd.c
+++ b/drivers/nvme/target/admin-cmd.c
@@ -185,7 +185,7 @@ static void nvmet_execute_identify_ctrl(struct nvmet_req *req)
185 id->ssvid = 0; 185 id->ssvid = 0;
186 186
187 memset(id->sn, ' ', sizeof(id->sn)); 187 memset(id->sn, ' ', sizeof(id->sn));
188 snprintf(id->sn, sizeof(id->sn), "%llx", ctrl->serial); 188 snprintf(id->sn, sizeof(id->sn), "%llx", ctrl->subsys->serial);
189 189
190 memset(id->mn, ' ', sizeof(id->mn)); 190 memset(id->mn, ' ', sizeof(id->mn));
191 strncpy((char *)id->mn, "Linux", sizeof(id->mn)); 191 strncpy((char *)id->mn, "Linux", sizeof(id->mn));
diff --git a/drivers/nvme/target/core.c b/drivers/nvme/target/core.c
index b5b4ac103748..f4b02bb4a1a8 100644
--- a/drivers/nvme/target/core.c
+++ b/drivers/nvme/target/core.c
@@ -767,9 +767,6 @@ u16 nvmet_alloc_ctrl(const char *subsysnqn, const char *hostnqn,
767 memcpy(ctrl->subsysnqn, subsysnqn, NVMF_NQN_SIZE); 767 memcpy(ctrl->subsysnqn, subsysnqn, NVMF_NQN_SIZE);
768 memcpy(ctrl->hostnqn, hostnqn, NVMF_NQN_SIZE); 768 memcpy(ctrl->hostnqn, hostnqn, NVMF_NQN_SIZE);
769 769
770 /* generate a random serial number as our controllers are ephemeral: */
771 get_random_bytes(&ctrl->serial, sizeof(ctrl->serial));
772
773 kref_init(&ctrl->ref); 770 kref_init(&ctrl->ref);
774 ctrl->subsys = subsys; 771 ctrl->subsys = subsys;
775 772
@@ -928,6 +925,8 @@ struct nvmet_subsys *nvmet_subsys_alloc(const char *subsysnqn,
928 return NULL; 925 return NULL;
929 926
930 subsys->ver = NVME_VS(1, 3, 0); /* NVMe 1.3.0 */ 927 subsys->ver = NVME_VS(1, 3, 0); /* NVMe 1.3.0 */
928 /* generate a random serial number as our controllers are ephemeral: */
929 get_random_bytes(&subsys->serial, sizeof(subsys->serial));
931 930
932 switch (type) { 931 switch (type) {
933 case NVME_NQN_NVME: 932 case NVME_NQN_NVME:
diff --git a/drivers/nvme/target/nvmet.h b/drivers/nvme/target/nvmet.h
index 747bbdb4f9c6..e3b244c7e443 100644
--- a/drivers/nvme/target/nvmet.h
+++ b/drivers/nvme/target/nvmet.h
@@ -112,7 +112,6 @@ struct nvmet_ctrl {
112 112
113 struct mutex lock; 113 struct mutex lock;
114 u64 cap; 114 u64 cap;
115 u64 serial;
116 u32 cc; 115 u32 cc;
117 u32 csts; 116 u32 csts;
118 117
@@ -152,6 +151,7 @@ struct nvmet_subsys {
152 u16 max_qid; 151 u16 max_qid;
153 152
154 u64 ver; 153 u64 ver;
154 u64 serial;
155 char *subsysnqn; 155 char *subsysnqn;
156 156
157 struct config_group group; 157 struct config_group group;