summaryrefslogtreecommitdiff
path: root/kexec/arch
diff options
context:
space:
mode:
Diffstat (limited to 'kexec/arch')
-rw-r--r--kexec/arch/i386/crashdump-x86.c28
-rw-r--r--kexec/arch/ppc/crashdump-powerpc.c3
-rw-r--r--kexec/arch/ppc64/crashdump-ppc64.c3
3 files changed, 11 insertions, 23 deletions
diff --git a/kexec/arch/i386/crashdump-x86.c b/kexec/arch/i386/crashdump-x86.c
index 0dada99..81610dc 100644
--- a/kexec/arch/i386/crashdump-x86.c
+++ b/kexec/arch/i386/crashdump-x86.c
@@ -55,16 +55,8 @@ static int get_kernel_page_offset(struct kexec_info *UNUSED(info),
int kv;
if (elf_info->machine == EM_X86_64) {
- kv = kernel_version();
- if (kv < 0)
- return -1;
-
- if (kv < KERNEL_VERSION(2, 6, 27))
- elf_info->page_offset = X86_64_PAGE_OFFSET_PRE_2_6_27;
- else if (kv < KERNEL_VERSION(4, 20, 0))
- elf_info->page_offset = X86_64_PAGE_OFFSET_PRE_4_20_0;
- else
- elf_info->page_offset = X86_64_PAGE_OFFSET;
+ /* get_kernel_vaddr_and_size will override this */
+ elf_info->page_offset = X86_64_PAGE_OFFSET;
}
else if (elf_info->machine == EM_386) {
elf_info->page_offset = X86_PAGE_OFFSET;
@@ -151,17 +143,15 @@ static int get_kernel_vaddr_and_size(struct kexec_info *UNUSED(info),
/* Search for the real PAGE_OFFSET when KASLR memory randomization
* is enabled */
- if (get_kernel_sym("page_offset_base") != 0) {
- for(phdr = ehdr.e_phdr; phdr != end_phdr; phdr++) {
- if (phdr->p_type == PT_LOAD) {
- vaddr = phdr->p_vaddr & pud_mask;
- if (lowest_vaddr == 0 || lowest_vaddr > vaddr)
- lowest_vaddr = vaddr;
- }
+ for(phdr = ehdr.e_phdr; phdr != end_phdr; phdr++) {
+ if (phdr->p_type == PT_LOAD) {
+ vaddr = phdr->p_vaddr & pud_mask;
+ if (lowest_vaddr == 0 || lowest_vaddr > vaddr)
+ lowest_vaddr = vaddr;
}
- if (lowest_vaddr != 0)
- elf_info->page_offset = lowest_vaddr;
}
+ if (lowest_vaddr != 0)
+ elf_info->page_offset = lowest_vaddr;
/* Traverse through the Elf headers and find the region where
* _stext symbol is located in. That's where kernel is mapped */
diff --git a/kexec/arch/ppc/crashdump-powerpc.c b/kexec/arch/ppc/crashdump-powerpc.c
index 4ad026f..15e8531 100644
--- a/kexec/arch/ppc/crashdump-powerpc.c
+++ b/kexec/arch/ppc/crashdump-powerpc.c
@@ -255,8 +255,7 @@ static void add_cmdline(char *cmdline, char *str)
int cmdline_size;
int cmdlen = strlen(cmdline) + strlen(str);
- cmdline_size = (kernel_version() < KERNEL_VERSION(3, 15, 0) ?
- 512 : COMMAND_LINE_SIZE);
+ cmdline_size = COMMAND_LINE_SIZE;
if (cmdlen > (cmdline_size - 1))
die("Command line overflow\n");
strcat(cmdline, str);
diff --git a/kexec/arch/ppc64/crashdump-ppc64.c b/kexec/arch/ppc64/crashdump-ppc64.c
index 26f9a01..addd769 100644
--- a/kexec/arch/ppc64/crashdump-ppc64.c
+++ b/kexec/arch/ppc64/crashdump-ppc64.c
@@ -478,8 +478,7 @@ static int add_cmdline_param(char *cmdline, uint64_t addr, char *cmdstr,
strcat(str, byte);
len = strlen(str);
cmdlen = strlen(cmdline) + len;
- cmdline_size = (kernel_version() < KERNEL_VERSION(3, 15, 0) ?
- 512 : COMMAND_LINE_SIZE);
+ cmdline_size = COMMAND_LINE_SIZE;
if (cmdlen > (cmdline_size - 1))
die("Command line overflow\n");
strcat(cmdline, str);