Blame 0003-dmidecode-Use-the-most-appropriate-unit-for-cache-si.patch

Anton Arapov 48d35d
From c43afb47fcbadabe2655fe7863a1e2ea9af1446c Mon Sep 17 00:00:00 2001
Anton Arapov 48d35d
From: Jean Delvare <jdelvare@suse.de>
Anton Arapov 48d35d
Date: Tue, 15 Jan 2019 12:59:00 +0100
Anton Arapov 48d35d
Subject: [PATCH 03/18] dmidecode: Use the most appropriate unit for cache size
Anton Arapov 48d35d
Anton Arapov 48d35d
As newer CPUs have larger and larger cache, using kB to represent the
Anton Arapov 48d35d
cache size is getting less convenient. Reuse the same function we have
Anton Arapov 48d35d
for system memory size so that large units will be used as
Anton Arapov 48d35d
appropriate. For example, a cache size reported as "20 MB" looks nicer
Anton Arapov 48d35d
than as "20480 kB".
Anton Arapov 48d35d
Anton Arapov 48d35d
Signed-off-by: Jean Delvare <jdelvare@suse.de>
Anton Arapov 48d35d
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Anton Arapov 48d35d
---
Anton Arapov 48d35d
 dmidecode.c | 17 +++++++++++------
Anton Arapov 48d35d
 1 file changed, 11 insertions(+), 6 deletions(-)
Anton Arapov 48d35d
Anton Arapov 48d35d
diff --git a/dmidecode.c b/dmidecode.c
Anton Arapov 48d35d
index 7ac6438..162e0c5 100644
Anton Arapov 48d35d
--- a/dmidecode.c
Anton Arapov 48d35d
+++ b/dmidecode.c
Anton Arapov 48d35d
@@ -1560,17 +1560,22 @@ static void dmi_cache_size(u16 code)
Anton Arapov 48d35d
 
Anton Arapov 48d35d
 static void dmi_cache_size_2(u32 code)
Anton Arapov 48d35d
 {
Anton Arapov 48d35d
+	u64 size;
Anton Arapov 48d35d
+
Anton Arapov 48d35d
 	if (code & 0x80000000)
Anton Arapov 48d35d
 	{
Anton Arapov 48d35d
 		code &= 0x7FFFFFFFLU;
Anton Arapov 48d35d
-		/* Use a more convenient unit for large cache size */
Anton Arapov 48d35d
-		if (code >= 0x8000)
Anton Arapov 48d35d
-			printf(" %u MB", code >> 4);
Anton Arapov 48d35d
-		else
Anton Arapov 48d35d
-			printf(" %u kB", code << 6);
Anton Arapov 48d35d
+		size.l = code << 6;
Anton Arapov 48d35d
+		size.h = code >> 26;
Anton Arapov 48d35d
 	}
Anton Arapov 48d35d
 	else
Anton Arapov 48d35d
-		printf(" %u kB", code);
Anton Arapov 48d35d
+	{
Anton Arapov 48d35d
+		size.l = code;
Anton Arapov 48d35d
+		size.h = 0;
Anton Arapov 48d35d
+	}
Anton Arapov 48d35d
+
Anton Arapov 48d35d
+	/* Use a more convenient unit for large cache size */
Anton Arapov 48d35d
+	dmi_print_memory_size(size, 1);
Anton Arapov 48d35d
 }
Anton Arapov 48d35d
 
Anton Arapov 48d35d
 static void dmi_cache_types(u16 code, const char *sep)
Anton Arapov 48d35d
-- 
Anton Arapov 48d35d
2.24.0
Anton Arapov 48d35d