]> www.infradead.org Git - users/hch/nvme-cli.git/commitdiff
Fix f/w log on big endian
authorKeith Busch <keith.busch@intel.com>
Fri, 5 Aug 2016 21:10:51 +0000 (15:10 -0600)
committerKeith Busch <keith.busch@intel.com>
Fri, 5 Aug 2016 21:11:36 +0000 (15:11 -0600)
The driver handles the endian conversion already, so doing this from
user-space was resulting in the wrong value for big-endian machines.

Signed-off-by: Keith Busch <keith.busch@intel.com>
nvme-ioctl.c

index 2a26ca217ecf7d62054f5027e745dccc9489d307..c0d659b70ec59a5be2b0462ab3e45265fffbd55d 100644 (file)
@@ -363,10 +363,8 @@ int nvme_get_log(int fd, __u32 nsid, __u8 log_id, __u32 data_len, void *data)
                .data_len       = data_len,
        };
        __u32 numd = (data_len >> 2) - 1;
-       __le16 numdu, numdl;
+       __u16 numdu = numd >> 16, numdl = numd & 0xffff;
 
-       numdu = htole16((numd & 0xFFFF0000) >> 16);
-       numdl = htole16(numd & 0x0000FFFF);
        cmd.cdw10 = log_id | (numdl << 16);
        cmd.cdw11 = numdu;