]> www.infradead.org Git - users/sagi/nvme-cli.git/commitdiff
Support Get Log Page extended Number of Dwords
authorMing Lin <ming.l@ssi.samsung.com>
Tue, 7 Jun 2016 15:19:18 +0000 (17:19 +0200)
committerKeith Busch <keith.busch@intel.com>
Tue, 7 Jun 2016 19:06:15 +0000 (13:06 -0600)
This supports 32 bits(rather than 12 bits) extended Number of Dwords
in nvme_get_log().

Signed-off-by: Ming Lin <ming.l@ssi.samsung.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-and-tested-by: Sagi Grimberg <sagi@grimberg.me>
Tested-by: Armen Baloyan <armenx.baloyan@intel.com>
nvme-ioctl.c

index 849d3b65d9766b910c9fbd4c8a1b4f273e048212..051083780851c3b75e83d64e180e9a24d4cdb1d3 100644 (file)
@@ -362,8 +362,13 @@ int nvme_get_log(int fd, __u32 nsid, __u8 log_id, __u32 data_len, void *data)
                .addr           = (__u64)(uintptr_t) data,
                .data_len       = data_len,
        };
+       __u32 numd = (data_len >> 2) - 1;
+       __le16 numdu, numdl;
 
-       cmd.cdw10 = log_id | ((data_len >> 2) - 1) << 16;
+       numdu = htole16((numd & 0xFFFF0000) >> 16);
+       numdl = htole16(numd & 0x0000FFFF);
+       cmd.cdw10 = log_id | (numdl << 16);
+       cmd.cdw11 = numdu;
 
        return nvme_submit_admin_passthru(fd, &cmd);
 }