37 lines
1.3 KiB
Diff
37 lines
1.3 KiB
Diff
From 7242ae4cb5288df626f464ced0a8b60fd669100b Mon Sep 17 00:00:00 2001
|
|
From: Michal Suchanek <msuchanek@suse.de>
|
|
Date: Mon, 16 Mar 2020 19:39:58 +0100
|
|
Subject: [PATCH 6/7] [PATCH] Align PMD_SECTION_MASK with PHYS_MASK
|
|
|
|
Reportedly on some arm64 systems makedumpfile loops forever exhausting
|
|
all memory when filtering kernel core. It turns out the reason is it
|
|
cannot resolve some addresses because the PMD mask is wrong. When
|
|
physical address mask allows up to 48bits pmd mask should allow the
|
|
same.
|
|
I suppose you would need a system that needs physical addresses over 1TB
|
|
to be able to reproduce this. This may be either because you have a lot
|
|
of memory or because the firmware mapped some memory above 1TB for some
|
|
reason.
|
|
|
|
Signed-off-by: Michal Suchanek <msuchanek@suse.de>
|
|
---
|
|
arch/arm64.c | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/makedumpfile-1.6.7/arch/arm64.c b/makedumpfile-1.6.7/arch/arm64.c
|
|
index 43164cc..54d60b4 100644
|
|
--- a/makedumpfile-1.6.7/arch/arm64.c
|
|
+++ b/makedumpfile-1.6.7/arch/arm64.c
|
|
@@ -81,7 +81,7 @@ static unsigned long kimage_voffset;
|
|
* Remove the highest order bits that are not a part of the
|
|
* physical address in a section
|
|
*/
|
|
-#define PMD_SECTION_MASK ((1UL << 40) - 1)
|
|
+#define PMD_SECTION_MASK ((1UL << PHYS_MASK_SHIFT) - 1)
|
|
|
|
#define PMD_TYPE_MASK 3
|
|
#define PMD_TYPE_SECT 1
|
|
--
|
|
2.7.5
|
|
|