diff options
Diffstat (limited to 'kexec/arch/i386')
-rw-r--r-- | kexec/arch/i386/crashdump-x86.c | 12 | ||||
-rw-r--r-- | kexec/arch/i386/crashdump-x86.h | 17 |
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) |