diff options
author | Daniel Verkamp <daniel.verkamp@intel.com> | 2018-04-12 09:16:13 -0600 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2018-04-12 09:58:27 -0600 |
commit | c73996984902516745bc587d5e8a0b2e034aea05 (patch) | |
tree | ec639511266b10b966d413891998586c7d539ef3 /drivers/nvme | |
parent | fd92c77f58257ae5eb5180afe36e86094e4910f6 (diff) | |
download | linux-c73996984902516745bc587d5e8a0b2e034aea05.tar.gz linux-c73996984902516745bc587d5e8a0b2e034aea05.tar.bz2 linux-c73996984902516745bc587d5e8a0b2e034aea05.zip |
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>
Diffstat (limited to 'drivers/nvme')
-rw-r--r-- | drivers/nvme/target/admin-cmd.c | 1 |
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) id->vid = 0; id->ssvid = 0; + memset(id->sn, ' ', sizeof(id->sn)); bin2hex(id->sn, &ctrl->subsys->serial, min(sizeof(ctrl->subsys->serial), sizeof(id->sn) / 2)); memcpy_and_pad(id->mn, sizeof(id->mn), model, sizeof(model) - 1, ' '); |