]> www.infradead.org Git - users/sagi/nvme-cli.git/commitdiff
nvme: Add fw-download warning message for FWUG alignment error
authorTokunori Ikegami <ikegami.t@gmail.com>
Sun, 21 Apr 2024 15:33:23 +0000 (00:33 +0900)
committerKeith Busch <kbusch@kernel.org>
Sun, 21 Apr 2024 16:01:20 +0000 (10:01 -0600)
Check the firmware file size if not aligned with FWUG value.

Signed-off-by: Tokunori Ikegami <ikegami.t@gmail.com>
nvme.c

diff --git a/nvme.c b/nvme.c
index c1d4352adcedb43bb80a877b4e54e7f739012263..9a200103dfe9b35cb482829d51c0ca9361b442b0 100644 (file)
--- a/nvme.c
+++ b/nvme.c
@@ -4872,7 +4872,7 @@ static int fw_download(int argc, char **argv, struct command *cmd, struct plugin
        int err;
        struct stat sb;
        void *fw_buf;
-       struct nvme_id_ctrl ctrl;
+       struct nvme_id_ctrl ctrl = { 0 };
 
        struct config {
                char    *fw;
@@ -4933,6 +4933,10 @@ static int fw_download(int argc, char **argv, struct command *cmd, struct plugin
        } else if (cfg.xfer % 4096)
                cfg.xfer = 4096;
 
+       if (ctrl.fwug && ctrl.fwug != 0xff && fw_size % cfg.xfer)
+               nvme_show_error("WARNING: firmware file size %u not conform to FWUG alignment %lu",
+                               fw_size, cfg.xfer);
+
        fw_buf = nvme_alloc_huge(fw_size, &mh);
        if (!fw_buf)
                return -ENOMEM;