From ba123fa6b2aa0ac62d1b78f327339635ae87201a Mon Sep 17 00:00:00 2001
From: Alexandru Moise <alexandru.moise@windriver.com>
Date: Fri, 29 Apr 2016 07:40:46 +0000
Subject: [PATCH] mem_section: Support only 46 bit for MAX_PHYSMEM_BITS on
 PPC64

Related to change:
http://lists.infradead.org/pipermail/kexec/2013-January/007849.html

Linux on PPC64 has supported only 46 bit MAX_PHYSMEM_BITS since commit:
048ee0993ec8360abb0b51bdf8f8721e9ed62ec4

Also remove set_ppc64_max_physmem_bits and set info->max_physmem_bits in
get_machdep_info_ppc64 instead. set_ppc64_max_physmem_bits is broken
for all kernels compiled with CONFIG_SPARSEMEM=n. makedumpfile is
unable to get mem_section field from powerpc kernel since commit:
fd59d231f81cb02870b9cf15f456a897f3669b4e

Upstream-Status: Pending

Signed-off-by: Alexandru Moise <alexandru.moise@windriver.com>
Signed-off-by: Yi Zhao <yi.zhao@windriver.com>

---
 arch/ppc64.c | 28 ++--------------------------
 1 file changed, 2 insertions(+), 26 deletions(-)

diff --git a/arch/ppc64.c b/arch/ppc64.c
index 8b6f7d5..458f06b 100644
--- a/arch/ppc64.c
+++ b/arch/ppc64.c
@@ -462,38 +462,14 @@ ppc64_vtop_level4(unsigned long vaddr)
 	return paddr;
 }
 
-int
-set_ppc64_max_physmem_bits(void)
-{
-	long array_len = ARRAY_LENGTH(mem_section);
-	/*
-	 * The older ppc64 kernels uses _MAX_PHYSMEM_BITS as 42 and the
-	 * newer kernels 3.7 onwards uses 46 bits.
-	 */
-
-	info->max_physmem_bits  = _MAX_PHYSMEM_BITS_ORIG ;
-	if ((array_len == (NR_MEM_SECTIONS() / _SECTIONS_PER_ROOT_EXTREME()))
-		|| (array_len == (NR_MEM_SECTIONS() / _SECTIONS_PER_ROOT())))
-		return TRUE;
-
-	info->max_physmem_bits  = _MAX_PHYSMEM_BITS_3_7;
-	if ((array_len == (NR_MEM_SECTIONS() / _SECTIONS_PER_ROOT_EXTREME()))
-		|| (array_len == (NR_MEM_SECTIONS() / _SECTIONS_PER_ROOT())))
-		return TRUE;
-
-	return FALSE;
-}
-
 int
 get_machdep_info_ppc64(void)
 {
 	unsigned long vmlist, vmap_area_list, vmalloc_start;
 
 	info->section_size_bits = _SECTION_SIZE_BITS;
-	if (!set_ppc64_max_physmem_bits()) {
-		ERRMSG("Can't detect max_physmem_bits.\n");
-		return FALSE;
-	}
+	info->max_physmem_bits = _MAX_PHYSMEM_BITS_3_7;
+
 	info->page_offset = __PAGE_OFFSET;
 
 	if (SYMBOL(_stext) == NOT_FOUND_SYMBOL) {
