summaryrefslogtreecommitdiff
path: root/kexec
diff options
context:
space:
mode:
Diffstat (limited to 'kexec')
-rw-r--r--kexec/arch/i386/crashdump-x86.c12
-rw-r--r--kexec/arch/i386/crashdump-x86.h17
2 files changed, 19 insertions, 10 deletions
diff --git a/kexec/arch/i386/crashdump-x86.c b/kexec/arch/i386/crashdump-x86.c
index dbb7724..3f85644 100644
--- a/kexec/arch/i386/crashdump-x86.c
+++ b/kexec/arch/i386/crashdump-x86.c
@@ -120,11 +120,11 @@ 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) {
- crash_memory_range[memory_ranges-1].end = MAXMEM -1;
+ if ((X86_MAXMEM - 1) >= start && (X86_MAXMEM - 1) <= end) {
+ crash_memory_range[memory_ranges-1].end = X86_MAXMEM -1;
/* Add segregated region. */
- crash_memory_range[memory_ranges].start = MAXMEM;
+ crash_memory_range[memory_ranges].start = X86_MAXMEM;
crash_memory_range[memory_ranges].end = end;
crash_memory_range[memory_ranges].type = type;
memory_ranges++;
@@ -472,7 +472,7 @@ static int get_crash_notes(int cpu, uint64_t *addr, uint64_t *len)
strerror(errno));
}
- *addr = __pa(vaddr + (cpu * MAX_NOTE_BYTES));
+ *addr = x86__pa(vaddr + (cpu * MAX_NOTE_BYTES));
*len = MAX_NOTE_BYTES;
#if 0
printf("crash_notes addr = %Lx\n", *addr);
@@ -520,7 +520,7 @@ int load_crashdump_segments(struct kexec_info *info, char* mod_cmdline,
elf_info.data = ELFDATA2LSB;
elf_info.backup_src_start = BACKUP_SRC_START;
elf_info.backup_src_end = BACKUP_SRC_END;
- elf_info.page_offset = PAGE_OFFSET;
+ elf_info.page_offset = X86_PAGE_OFFSET;
/*
* if the core type has not been set on command line, set it here
@@ -541,7 +541,7 @@ int load_crashdump_segments(struct kexec_info *info, char* mod_cmdline,
elf_info.machine = EM_X86_64;
} else {
elf_info.machine = EM_386;
- elf_info.lowmem_limit = MAXMEM;
+ elf_info.lowmem_limit = X86_MAXMEM;
elf_info.get_note_info = get_crash_notes;
}
diff --git a/kexec/arch/i386/crashdump-x86.h b/kexec/arch/i386/crashdump-x86.h
index bb6ceb9..b61cf0a 100644
--- a/kexec/arch/i386/crashdump-x86.h
+++ b/kexec/arch/i386/crashdump-x86.h
@@ -5,11 +5,20 @@ struct kexec_info;
int load_crashdump_segments(struct kexec_info *info, char *mod_cmdline,
unsigned long max_addr, unsigned long min_base);
-#define PAGE_OFFSET 0xc0000000
-#define __pa(x) ((unsigned long)(x)-PAGE_OFFSET)
+#define X86_PAGE_OFFSET 0xc0000000
+#define x86__pa(x) ((unsigned long)(x)-X86_PAGE_OFFSET)
-#define __VMALLOC_RESERVE (128 << 20)
-#define MAXMEM (-PAGE_OFFSET-__VMALLOC_RESERVE)
+#define X86__VMALLOC_RESERVE (128 << 20)
+#define X86_MAXMEM (-X86_PAGE_OFFSET-X86__VMALLOC_RESERVE)
+
+#define X86_64__START_KERNEL_map 0xffffffff80000000ULL
+#define X86_64_PAGE_OFFSET_PRE_2_6_27 0xffff810000000000ULL
+#define X86_64_PAGE_OFFSET 0xffff880000000000ULL
+
+#define X86_64_MAXMEM 0x3fffffffffffUL
+
+/* Kernel text size */
+#define X86_64_KERNEL_TEXT_SIZE (512UL*1024*1024)
#define CRASH_MAX_MEMMAP_NR (KEXEC_MAX_SEGMENTS + 1)
#define CRASH_MAX_MEMORY_RANGES (MAX_MEMORY_RANGES + 2)