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 <[email protected]>
---
 arch/arm64.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm64.c b/arch/arm64.c
index 43164ccc32d4..54d60b440850 100644
--- a/arch/arm64.c
+++ b/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.23.0


_______________________________________________
kexec mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec

Reply via email to