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

6eb117
From 74e23540335254b8fca6a81cc891c52d96937d40 Mon Sep 17 00:00:00 2001
6eb117
From: Lyonel Vincent <lyonel@ezix.org>
6eb117
Date: Thu, 29 Apr 2021 16:40:37 +0200
6eb117
Subject: [PATCH] Fix getting size of memory banks <32GiB
6eb117
6eb117
PR65 on Github (thanks to Z.Bitter)
6eb117
6eb117
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.
6eb117
6eb117
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).
6eb117
---
6eb117
 src/core/dmi.cc | 15 +++++++--------
6eb117
 1 file changed, 7 insertions(+), 8 deletions(-)
6eb117
6eb117
diff --git a/src/core/dmi.cc b/src/core/dmi.cc
6eb117
index fe6ad39..96b6506 100644
6eb117
--- a/src/core/dmi.cc
6eb117
+++ b/src/core/dmi.cc
6eb117
@@ -1567,15 +1567,14 @@ int dmiversionrev)
6eb117
 
6eb117
 // size
6eb117
           u = data[0x0D] << 8 | data[0x0C];
6eb117
-          if ((dmiversionmaj > 2)
6eb117
-            || ((dmiversionmaj == 2) && (dmiversionmin >= 7))) {
6eb117
-             if(u == 0x7FFF) {
6eb117
-                unsigned long long extendsize = (data[0x1F] << 24) | (data[0x1E] << 16) | (data[0x1D] << 8) | data[0x1C];
6eb117
-                extendsize &= 0x7FFFFFFFUL;
6eb117
-                size = extendsize * 1024ULL * 1024ULL;
6eb117
-             }
6eb117
+          if (((dmiversionmaj > 2)
6eb117
+            || ((dmiversionmaj == 2) && (dmiversionmin >= 7)))
6eb117
+            && u == 0x7FFF) {
6eb117
+              unsigned long long extendsize = (data[0x1F] << 24) | (data[0x1E] << 16) | (data[0x1D] << 8) | data[0x1C];
6eb117
+              extendsize &= 0x7FFFFFFFUL;
6eb117
+              size = extendsize * 1024ULL * 1024ULL;
6eb117
           }
6eb117
-	  else
6eb117
+          else
6eb117
           if (u != 0xFFFF)
6eb117
             size = (1024ULL * (u & 0x7FFF) * ((u & 0x8000) ? 1 : 1024ULL));
6eb117
           description += string(dmi_memory_device_form_factor(data[0x0E]));
6eb117
-- 
6eb117
2.29.2
6eb117