diff options
| -rw-r--r-- | drivers/nvme/target/admin-cmd.c | 2 | ||||
| -rw-r--r-- | drivers/nvme/target/core.c | 5 | ||||
| -rw-r--r-- | drivers/nvme/target/nvmet.h | 2 |
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; |
