diff --git a/util-linux-lscpu-cleanup-DMI-detection-return-codes.patch b/util-linux-lscpu-cleanup-DMI-detection-return-codes.patch deleted file mode 100644 index 13c00b5..0000000 --- a/util-linux-lscpu-cleanup-DMI-detection-return-codes.patch +++ /dev/null @@ -1,85 +0,0 @@ -From c972852b29391c35b1d5c7d3e1e6413e0cc86908 Mon Sep 17 00:00:00 2001 -From: Karel Zak -Date: Tue, 13 Jun 2017 12:15:11 +0200 -Subject: [PATCH] lscpu: cleanup DMI detection return codes - -Michal wrote: - There is weird mix of logic in lscpu-dmi.c which sometimes returns 0 and - sometimes -1 on error. Since most checks are if (rc) goto done; this - bails out early on error skipping some detection methods. Further, in - lscpu.c all following detections are guarder by if(hyper) so returning - -1 causes all following methods to be skipped. - -Reported-by: Michal Suchanek -Signed-off-by: Karel Zak ---- - sys-utils/lscpu-dmi.c | 21 +++++++++++++-------- - 1 file changed, 13 insertions(+), 8 deletions(-) - -diff --git a/sys-utils/lscpu-dmi.c b/sys-utils/lscpu-dmi.c -index 3ba999124a2e..4b845b97ccd9 100644 ---- a/sys-utils/lscpu-dmi.c -+++ b/sys-utils/lscpu-dmi.c -@@ -174,7 +174,7 @@ done: - static int hypervisor_decode_legacy(uint8_t *buf, const char *devmem) - { - if (!checksum(buf, 0x0F)) -- return HYPER_NONE; -+ return -1; - - return hypervisor_from_dmi_table(DWORD(buf + 0x08), WORD(buf + 0x06), - WORD(buf + 0x0C), -@@ -254,11 +254,15 @@ int read_hypervisor_dmi(void) - || sizeof(uint16_t) != 2 - || sizeof(uint32_t) != 4 - || '\0' != 0) -- return rc; -+ goto done; - -+ /* -1 : no DMI in /sys, -+ * 0 : DMI exist, nothing detected (HYPER_NONE) -+ * >0 : hypervisor detected -+ */ - rc = hypervisor_decode_sysfw(); -- if (rc >= 0) -- return rc; -+ if (rc >= HYPER_NONE) -+ goto done; - - /* First try EFI (ia64, Intel-based Mac) */ - switch (address_from_efi(&fp)) { -@@ -273,8 +277,9 @@ int read_hypervisor_dmi(void) - goto done; - - rc = hypervisor_decode_smbios(buf, _PATH_DEV_MEM); -- if (rc) -+ if (rc >= HYPER_NONE) - goto done; -+ - free(buf); - buf = NULL; - memory_scan: -@@ -287,17 +292,17 @@ memory_scan: - for (fp = 0; fp <= 0xFFF0; fp += 16) { - if (memcmp(buf + fp, "_SM_", 4) == 0 && fp <= 0xFFE0) { - rc = hypervisor_decode_smbios(buf + fp, _PATH_DEV_MEM); -- if (rc == -1) -+ if (rc < 0) - fp += 16; - - } else if (memcmp(buf + fp, "_DMI_", 5) == 0) - rc = hypervisor_decode_legacy(buf + fp, _PATH_DEV_MEM); - -- if (rc >= 0) -+ if (rc >= HYPER_NONE) - break; - } - #endif - done: - free(buf); -- return rc; -+ return rc < 0 ? HYPER_NONE : rc; - } --- -2.12.3 -