Blame SOURCES/0001-Fix-getting-size-of-memory-banks-32GiB.patch

2b77b9
From 74e23540335254b8fca6a81cc891c52d96937d40 Mon Sep 17 00:00:00 2001
2b77b9
From: Lyonel Vincent <lyonel@ezix.org>
2b77b9
Date: Thu, 29 Apr 2021 16:40:37 +0200
2b77b9
Subject: [PATCH] Fix getting size of memory banks <32GiB
2b77b9
2b77b9
PR65 on Github (thanks to Z.Bitter)
2b77b9
2b77b9
Due to a regression introduced by 8ff1efb, no size was recorded for memory banks <32GiB in size on systems with an SMBIOS version of 2.7 or later. On these systems the Type 17 size field from SMBIOS was only recorded if the extended size field was used.
2b77b9
2b77b9
Modify the code to use the regular size field whenever it is valid (not 0xFFFF) and not set to 0x7FFF on versions >2.7 (indicating the extended size field is in use).
2b77b9
---
2b77b9
 src/core/dmi.cc | 15 +++++++--------
2b77b9
 1 file changed, 7 insertions(+), 8 deletions(-)
2b77b9
2b77b9
diff --git a/src/core/dmi.cc b/src/core/dmi.cc
2b77b9
index fe6ad39..96b6506 100644
2b77b9
--- a/src/core/dmi.cc
2b77b9
+++ b/src/core/dmi.cc
2b77b9
@@ -1567,15 +1567,14 @@ int dmiversionrev)
2b77b9
 
2b77b9
 // size
2b77b9
           u = data[0x0D] << 8 | data[0x0C];
2b77b9
-          if ((dmiversionmaj > 2)
2b77b9
-            || ((dmiversionmaj == 2) && (dmiversionmin >= 7))) {
2b77b9
-             if(u == 0x7FFF) {
2b77b9
-                unsigned long long extendsize = (data[0x1F] << 24) | (data[0x1E] << 16) | (data[0x1D] << 8) | data[0x1C];
2b77b9
-                extendsize &= 0x7FFFFFFFUL;
2b77b9
-                size = extendsize * 1024ULL * 1024ULL;
2b77b9
-             }
2b77b9
+          if (((dmiversionmaj > 2)
2b77b9
+            || ((dmiversionmaj == 2) && (dmiversionmin >= 7)))
2b77b9
+            && u == 0x7FFF) {
2b77b9
+              unsigned long long extendsize = (data[0x1F] << 24) | (data[0x1E] << 16) | (data[0x1D] << 8) | data[0x1C];
2b77b9
+              extendsize &= 0x7FFFFFFFUL;
2b77b9
+              size = extendsize * 1024ULL * 1024ULL;
2b77b9
           }
2b77b9
-	  else
2b77b9
+          else
2b77b9
           if (u != 0xFFFF)
2b77b9
             size = (1024ULL * (u & 0x7FFF) * ((u & 0x8000) ? 1 : 1024ULL));
2b77b9
           description += string(dmi_memory_device_form_factor(data[0x0E]));
2b77b9
-- 
2b77b9
2.29.2
2b77b9