Blame 0010-dmidecode-Only-scan-dev-mem-for-entry-point-on-x86.patch

Anton Arapov 48d35d
From e12ec26e19e02281d3e7258c3aabb88a5cf5ec1d Mon Sep 17 00:00:00 2001
Anton Arapov 48d35d
From: Jean Delvare <jdelvare@suse.de>
Anton Arapov 48d35d
Date: Mon, 26 Aug 2019 14:20:15 +0200
Anton Arapov 48d35d
Subject: [PATCH 10/18] dmidecode: Only scan /dev/mem for entry point on x86
Anton Arapov 48d35d
Anton Arapov 48d35d
x86 is the only architecture which can have a DMI entry point scanned
Anton Arapov 48d35d
from /dev/mem. Do not attempt it on other architectures, because not
Anton Arapov 48d35d
only it can't work, but it can even cause the system to reboot.
Anton Arapov 48d35d
Anton Arapov 48d35d
This fixes support request #109697:
Anton Arapov 48d35d
https://savannah.nongnu.org/support/?109697
Anton Arapov 48d35d
---
Anton Arapov 48d35d
 dmidecode.c | 8 +++++---
Anton Arapov 48d35d
 1 file changed, 5 insertions(+), 3 deletions(-)
Anton Arapov 48d35d
Anton Arapov 48d35d
diff --git a/dmidecode.c b/dmidecode.c
Anton Arapov 48d35d
index 21bfd65..9c1e9c4 100644
Anton Arapov 48d35d
--- a/dmidecode.c
Anton Arapov 48d35d
+++ b/dmidecode.c
Anton Arapov 48d35d
@@ -2,7 +2,7 @@
Anton Arapov 48d35d
  * DMI Decode
Anton Arapov 48d35d
  *
Anton Arapov 48d35d
  *   Copyright (C) 2000-2002 Alan Cox <alan@redhat.com>
Anton Arapov 48d35d
- *   Copyright (C) 2002-2018 Jean Delvare <jdelvare@suse.de>
Anton Arapov 48d35d
+ *   Copyright (C) 2002-2019 Jean Delvare <jdelvare@suse.de>
Anton Arapov 48d35d
  *
Anton Arapov 48d35d
  *   This program is free software; you can redistribute it and/or modify
Anton Arapov 48d35d
  *   it under the terms of the GNU General Public License as published by
Anton Arapov 48d35d
@@ -5538,7 +5538,7 @@ int main(int argc, char * const argv[])
Anton Arapov 48d35d
 	off_t fp;
Anton Arapov 48d35d
 	size_t size;
Anton Arapov 48d35d
 	int efi;
Anton Arapov 48d35d
-	u8 *buf;
Anton Arapov 48d35d
+	u8 *buf = NULL;
Anton Arapov 48d35d
 
Anton Arapov 48d35d
 	/*
Anton Arapov 48d35d
 	 * We don't want stdout and stderr to be mixed up if both are
Anton Arapov 48d35d
@@ -5642,7 +5642,7 @@ int main(int argc, char * const argv[])
Anton Arapov 48d35d
 			printf("Failed to get SMBIOS data from sysfs.\n");
Anton Arapov 48d35d
 	}
Anton Arapov 48d35d
 
Anton Arapov 48d35d
-	/* Next try EFI (ia64, Intel-based Mac) */
Anton Arapov 48d35d
+	/* Next try EFI (ia64, Intel-based Mac, arm64) */
Anton Arapov 48d35d
 	efi = address_from_efi(&fp);
Anton Arapov 48d35d
 	switch (efi)
Anton Arapov 48d35d
 	{
Anton Arapov 48d35d
@@ -5675,6 +5675,7 @@ int main(int argc, char * const argv[])
Anton Arapov 48d35d
 	goto done;
Anton Arapov 48d35d
 
Anton Arapov 48d35d
 memory_scan:
Anton Arapov 48d35d
+#if defined __i386__ || defined __x86_64__
Anton Arapov 48d35d
 	if (!(opt.flags & FLAG_QUIET))
Anton Arapov 48d35d
 		printf("Scanning %s for entry point.\n", opt.devmem);
Anton Arapov 48d35d
 	/* Fallback to memory scan (x86, x86_64) */
Anton Arapov 48d35d
@@ -5717,6 +5718,7 @@ int main(int argc, char * const argv[])
Anton Arapov 48d35d
 			}
Anton Arapov 48d35d
 		}
Anton Arapov 48d35d
 	}
Anton Arapov 48d35d
+#endif
Anton Arapov 48d35d
 
Anton Arapov 48d35d
 done:
Anton Arapov 48d35d
 	if (!found && !(opt.flags & FLAG_QUIET))
Anton Arapov 48d35d
-- 
Anton Arapov 48d35d
2.24.0
Anton Arapov 48d35d