[PATCH 2/4] kexec-tools: mips: Don't set lowmem_limit to 2G for 64-bit systems.
David Daney
david.daney at cavium.com
Thu Oct 12 14:02:26 PDT 2017
The 64-bit MIPS architecture doesn't have the same 2G limit the 32-bit
version has. Set MAXMEM and lowmem_limit to 0 for 64-bit MIPS so that
memory above 2G is usable in the kdump core files.
Signed-off-by: David Daney <david.daney at cavium.com>
---
kexec/arch/mips/crashdump-mips.c | 4 ++--
kexec/arch/mips/crashdump-mips.h | 3 ++-
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/kexec/arch/mips/crashdump-mips.c b/kexec/arch/mips/crashdump-mips.c
index 6308ec8..22fc38e 100644
--- a/kexec/arch/mips/crashdump-mips.c
+++ b/kexec/arch/mips/crashdump-mips.c
@@ -201,7 +201,7 @@ static int get_crash_memory_ranges(struct memory_range **range, int *ranges)
memory_ranges++;
/* Segregate linearly mapped region. */
- if ((MAXMEM - 1) >= start && (MAXMEM - 1) <= end) {
+ if (MAXMEM && (MAXMEM - 1) >= start && (MAXMEM - 1) <= end) {
crash_memory_range[memory_ranges - 1].end = MAXMEM - 1;
/* Add segregated region. */
@@ -304,7 +304,7 @@ static struct crash_elf_info elf_info64 = {
data : ELFDATALOCAL,
machine : EM_MIPS,
page_offset : PAGE_OFFSET,
- lowmem_limit : MAXMEM,
+ lowmem_limit : 0, /* 0 == no limit */
};
static struct crash_elf_info elf_info32 = {
diff --git a/kexec/arch/mips/crashdump-mips.h b/kexec/arch/mips/crashdump-mips.h
index c986835..7edd859 100644
--- a/kexec/arch/mips/crashdump-mips.h
+++ b/kexec/arch/mips/crashdump-mips.h
@@ -6,12 +6,13 @@ int load_crashdump_segments(struct kexec_info *info, char *mod_cmdline,
unsigned long max_addr, unsigned long min_base);
#ifdef __mips64
#define PAGE_OFFSET 0xa800000000000000ULL
+#define MAXMEM 0
#else
#define PAGE_OFFSET 0x80000000
+#define MAXMEM 0x80000000
#endif
#define __pa(x) ((unsigned long)(X) & 0x7fffffff)
-#define MAXMEM 0x80000000
#define CRASH_MAX_MEMMAP_NR (KEXEC_MAX_SEGMENTS + 1)
#define CRASH_MAX_MEMORY_RANGES (MAX_MEMORY_RANGES + 2)
--
2.9.5
More information about the kexec
mailing list