summaryrefslogtreecommitdiff
path: root/kexec/arch/i386/crashdump-x86.c
diff options
context:
space:
mode:
Diffstat (limited to 'kexec/arch/i386/crashdump-x86.c')
-rw-r--r--kexec/arch/i386/crashdump-x86.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/kexec/arch/i386/crashdump-x86.c b/kexec/arch/i386/crashdump-x86.c
index 590c883..2af090c 100644
--- a/kexec/arch/i386/crashdump-x86.c
+++ b/kexec/arch/i386/crashdump-x86.c
@@ -776,7 +776,9 @@ int load_crashdump_segments(struct kexec_info *info, char* mod_cmdline,
memset(memmap_p, 0, sz);
add_memmap(memmap_p, info->backup_src_start, info->backup_src_size);
sz = crash_reserved_mem.end - crash_reserved_mem.start +1;
- add_memmap(memmap_p, crash_reserved_mem.start, sz);
+ if (add_memmap(memmap_p, crash_reserved_mem.start, sz) < 0) {
+ return ENOCRASHKERNEL;
+ }
/* Create a backup region segment to store backup data*/
if (!(info->kexec_flags & KEXEC_PRESERVE_CONTEXT)) {
@@ -788,7 +790,7 @@ int load_crashdump_segments(struct kexec_info *info, char* mod_cmdline,
dbgprintf("Created backup segment at 0x%lx\n",
info->backup_start);
if (delete_memmap(memmap_p, info->backup_start, sz) < 0)
- return -1;
+ return EFAILED;
}
/* Create elf header segment and store crash image data. */
@@ -797,14 +799,14 @@ int load_crashdump_segments(struct kexec_info *info, char* mod_cmdline,
crash_memory_range, nr_ranges,
&tmp, &bufsz,
ELF_CORE_HEADER_ALIGN) < 0)
- return -1;
+ return EFAILED;
}
else {
if (crash_create_elf32_headers(info, &elf_info,
crash_memory_range, nr_ranges,
&tmp, &bufsz,
ELF_CORE_HEADER_ALIGN) < 0)
- return -1;
+ return EFAILED;
}
/* the size of the elf headers allocated is returned in 'bufsz' */