]> www.infradead.org Git - users/sagi/libnvme.git/commitdiff
ioctl: fix log page offset
authorJinliang Wang <jinliangw@google.com>
Tue, 29 Nov 2022 23:15:28 +0000 (15:15 -0800)
committerDaniel Wagner <dwagner@suse.de>
Fri, 2 Dec 2022 09:06:20 +0000 (10:06 +0100)
The original `lpo` info is lost in `nvme_get_log_page`.
Save it into a local variable and append `offset` after it.

Signed-off-by: Jinliang Wang <jinliangw@google.com>
src/nvme/ioctl.c

index e4f4c3fd5ed114da666e9afb79ea82f34b1a82b0..422a1097a867360dc2ff5a7d175fd90457e94426 100644 (file)
@@ -433,6 +433,7 @@ int nvme_get_log(struct nvme_get_log_args *args)
 int nvme_get_log_page(int fd, __u32 xfer_len, struct nvme_get_log_args *args)
 {
        __u64 offset = 0, xfer, data_len = args->len;
+       __u64 start = args->lpo;
        bool retain = true;
        void *ptr = args->log;
        int ret;
@@ -454,7 +455,7 @@ int nvme_get_log_page(int fd, __u32 xfer_len, struct nvme_get_log_args *args)
                if (offset + xfer == data_len)
                        retain = args->rae;
 
-               args->lpo = offset;
+               args->lpo = start + offset;
                args->len = xfer;
                args->log = ptr;
                args->rae = retain;