Revert: Merge an upstream patch for fix a ppc64 makedumpfile bug with with CONFIG_SPARSEMEM_EXTREME
This reverts commit 05b67ee95c
.
The old commit was merged for a emergent bug fixing on release 1.5.1
of makedumpfile. Now the upstream has been updated to v1.5.3, and this
patch has been included already.
For updating to makedumpfile v1.5.3, revert it.
This commit is contained in:
parent
01bb9af7ed
commit
2cc052a071
@ -1,77 +0,0 @@
|
||||
makedumpfile: ppc64: Auto-detect the correct MAX_PHYSMEM_BITS used in vmcore being analyzed.
|
||||
|
||||
The latest upstream kernel commit 048ee0993ec8360abb0b51bdf8f8721e9ed62ec4 adds
|
||||
64TB support to ppc64 kernel and bumps the MAX_PHYSMEM_BITS from 44 to 46. This
|
||||
change causes sparsemem extreme check to fail in makedumpfile.
|
||||
|
||||
This patch auto-detects the correct value to use for MAX_PHYSMEM_BITS by
|
||||
examining the mem_section array size from the vmcore being analyzed.
|
||||
|
||||
This patch has been tested on upstream kernel 3.8.0-rc4 and older kernel
|
||||
2.6.32.
|
||||
|
||||
Reported-by: Dave Anderson <anderson@redhat.com>
|
||||
Reported-by: Dave Young <dyoung@redhat.com>
|
||||
Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
|
||||
---
|
||||
arch/ppc64.c | 27 ++++++++++++++++++++++++++-
|
||||
makedumpfile.h | 3 ++-
|
||||
2 files changed, 28 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/makedumpfile-1.5.1/arch/ppc64.c b/makedumpfile-1.5.1/arch/ppc64.c
|
||||
index 1cb69e1..afbaf55 100644
|
||||
--- a/makedumpfile-1.5.1/arch/ppc64.c
|
||||
+++ b/makedumpfile-1.5.1/arch/ppc64.c
|
||||
@@ -25,12 +25,37 @@
|
||||
#include "../makedumpfile.h"
|
||||
|
||||
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, vmalloc_start;
|
||||
|
||||
info->section_size_bits = _SECTION_SIZE_BITS;
|
||||
- info->max_physmem_bits = _MAX_PHYSMEM_BITS;
|
||||
+ if (!set_ppc64_max_physmem_bits()) {
|
||||
+ ERRMSG("Can't detect max_physmem_bits.\n");
|
||||
+ return FALSE;
|
||||
+ }
|
||||
info->page_offset = __PAGE_OFFSET;
|
||||
|
||||
if (SYMBOL(_stext) == NOT_FOUND_SYMBOL) {
|
||||
diff --git a/makedumpfile-1.5.1/makedumpfile.h b/makedumpfile-1.5.1/makedumpfile.h
|
||||
index d2bdc0c..d758a3c 100644
|
||||
--- a/makedumpfile-1.5.1/makedumpfile.h
|
||||
+++ b/makedumpfile-1.5.1/makedumpfile.h
|
||||
@@ -566,7 +566,8 @@ do { \
|
||||
#define VMALLOCBASE (0xD000000000000000)
|
||||
#define KVBASE (SYMBOL(_stext))
|
||||
#define _SECTION_SIZE_BITS (24)
|
||||
-#define _MAX_PHYSMEM_BITS (44)
|
||||
+#define _MAX_PHYSMEM_BITS_ORIG (44)
|
||||
+#define _MAX_PHYSMEM_BITS_3_7 (46)
|
||||
#endif
|
||||
|
||||
#ifdef __powerpc32__
|
@ -73,7 +73,6 @@ Patch301: kexec-tools-2.0.3-ppc-ppc64-compile-purgatory-code-with-gcc-option-mso
|
||||
# Patches 501 through 600 are meant for ppc kexec-tools enablement
|
||||
#
|
||||
Patch501: kexec-tools-2.0.3-ppc-exec-stack-fix.patch
|
||||
Patch502: kexec-tools-2.0.3-makedumpfile-ppc64-auto-detect-the-correct-MAX-PHYSMEM-BITS.patch
|
||||
|
||||
#
|
||||
# Patches 601 onward are generic patches
|
||||
@ -100,7 +99,6 @@ tar -z -x -v -f %{SOURCE9}
|
||||
%patch002 -p1
|
||||
%patch301 -p1
|
||||
%patch501 -p1
|
||||
%patch502 -p1
|
||||
%patch601 -p1
|
||||
%patch602 -p1
|
||||
%patch603 -p1
|
||||
|
Loading…
Reference in New Issue
Block a user