File smartmontools-smartctl-NVMe-big-endian.patch of Package smartmontools
Index: smartmontools-7.2/nvmecmds.cpp
===================================================================
--- smartmontools-7.2.orig/nvmecmds.cpp
+++ smartmontools-7.2/nvmecmds.cpp
@@ -230,8 +230,9 @@ unsigned nvme_read_error_log(nvme_device
unsigned n = nvme_read_log_page(device, 0xffffffff, 0x01, error_log,
num_entries * sizeof(*error_log), lpo_sup);
+ unsigned read_entries = n / sizeof(*error_log);
if (isbigendian()) {
- for (unsigned i = 0; i < n; i++) {
+ for (unsigned i = 0; i < read_entries; i++) {
swapx(&error_log[i].error_count);
swapx(&error_log[i].sqid);
swapx(&error_log[i].cmdid);
@@ -242,7 +243,7 @@ unsigned nvme_read_error_log(nvme_device
}
}
- return n / sizeof(*error_log);
+ return read_entries;
}
// Read NVMe SMART/Health Information log.