aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Verkamp <daniel.verkamp@intel.com>2018-04-12 11:16:13 -0400
committerJens Axboe <axboe@kernel.dk>2018-04-12 11:58:27 -0400
commitc73996984902516745bc587d5e8a0b2e034aea05 (patch)
treeec639511266b10b966d413891998586c7d539ef3
parentfd92c77f58257ae5eb5180afe36e86094e4910f6 (diff)
nvmet: fix space padding in serial number
Commit 42de82a8b544 previously attempted to fix this, and it did correctly pad the MN and FR fields with spaces, but the SN field still contains 0 bytes. The current code fills out the first 16 bytes with hex2bin, leaving the last 4 bytes zeroed. Rather than adding a lot of error-prone math to avoid overwriting SN twice, just set the whole thing to spaces up front (it's only 20 bytes). Fixes: 42de82a8b544 ("nvmet: don't report 0-bytes in serial number") Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com> Reviewed-by: Martin Wilck <mwilck@suse.com> Signed-off-by: Keith Busch <keith.busch@intel.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
-rw-r--r--drivers/nvme/target/admin-cmd.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/nvme/target/admin-cmd.c b/drivers/nvme/target/admin-cmd.c
index 90dcdc40ac71..5e0e9fcc0d4d 100644
--- a/drivers/nvme/target/admin-cmd.c
+++ b/drivers/nvme/target/admin-cmd.c
@@ -178,6 +178,7 @@ static void nvmet_execute_identify_ctrl(struct nvmet_req *req)
178 id->vid = 0; 178 id->vid = 0;
179 id->ssvid = 0; 179 id->ssvid = 0;
180 180
181 memset(id->sn, ' ', sizeof(id->sn));
181 bin2hex(id->sn, &ctrl->subsys->serial, 182 bin2hex(id->sn, &ctrl->subsys->serial,
182 min(sizeof(ctrl->subsys->serial), sizeof(id->sn) / 2)); 183 min(sizeof(ctrl->subsys->serial), sizeof(id->sn) / 2));
183 memcpy_and_pad(id->mn, sizeof(id->mn), model, sizeof(model) - 1, ' '); 184 memcpy_and_pad(id->mn, sizeof(id->mn), model, sizeof(model) - 1, ' ');