From: Jeff Lien Date: Fri, 24 Aug 2018 18:34:27 +0000 (-0500) Subject: nvme-cli: Fix the displayed metadata length value on Big Endian systems. X-Git-Tag: v1.7~86 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=167a009f51630c5907ac133861f886b10e16fb74;p=users%2Fsagi%2Fnvme-cli.git nvme-cli: Fix the displayed metadata length value on Big Endian systems. On BE systems, the metadata length value displayed as part of the format in the nvme list command is byte swapped. So a value of 0 appears just fine but a value of 8 bytes is displayed as 0x0800. This patch fixes that is the value is correct for both LE and BE systems. Signed-off-by: Jeff Lien --- diff --git a/nvme-print.c b/nvme-print.c index 4c2a73a6..3589c19f 100644 --- a/nvme-print.c +++ b/nvme-print.c @@ -2050,7 +2050,7 @@ static void show_list_item(struct list_item list_item) sprintf(usage,"%6.2f %2sB / %6.2f %2sB", nuse, u_suffix, nsze, s_suffix); sprintf(format,"%3.0f %2sB + %2d B", (double)lba, l_suffix, - list_item.ns.lbaf[(list_item.ns.flbas & 0x0f)].ms); + le16_to_cpu(list_item.ns.lbaf[(list_item.ns.flbas & 0x0f)].ms)); printf("%-16s %-*.*s %-*.*s %-9d %-26s %-16s %-.*s\n", list_item.node, (int)sizeof(list_item.ctrl.sn), (int)sizeof(list_item.ctrl.sn), list_item.ctrl.sn, (int)sizeof(list_item.ctrl.mn), (int)sizeof(list_item.ctrl.mn), list_item.ctrl.mn,