diff -Nrup kexec-tools-2.0.0.orig/kexec/arch/i386/crashdump-x86.c kexec-tools-2.0.0/kexec/arch/i386/crashdump-x86.c
--- kexec-tools-2.0.0.orig/kexec/arch/i386/crashdump-x86.c	2011-03-31 16:56:29.000000000 +0800
+++ kexec-tools-2.0.0/kexec/arch/i386/crashdump-x86.c	2011-03-31 19:18:24.000000000 +0800
@@ -591,10 +591,12 @@ int load_crashdump_segments(struct kexec
 	int nr_ranges, align = 1024;
 	struct memory_range *mem_range, *memmap_p;
 	int i;
-	unsigned long tmp_backup_end;
 
-        get_backup_area(&info->backup_src_start, &tmp_backup_end);
-        info->backup_src_size =  tmp_backup_end - info->backup_src_start + 1;
+        get_backup_area(&info->backup_src_start, &elf_info64.backup_src_end);
+	elf_info64.backup_src_start = info->backup_src_start;
+	elf_info32.backup_src_start = elf_info64.backup_src_start;
+	elf_info32.backup_src_end = elf_info64.backup_src_end;
+        info->backup_src_size =  elf_info64.backup_src_end - info->backup_src_start + 1;
 
 	if (get_crash_memory_ranges(&mem_range, &nr_ranges) < 0)
 		return -1;
diff -Nrup kexec-tools-2.0.0.orig/kexec/arch/x86_64/crashdump-x86_64.c kexec-tools-2.0.0/kexec/arch/x86_64/crashdump-x86_64.c
--- kexec-tools-2.0.0.orig/kexec/arch/x86_64/crashdump-x86_64.c	2011-03-31 16:56:29.000000000 +0800
+++ kexec-tools-2.0.0/kexec/arch/x86_64/crashdump-x86_64.c	2011-03-31 19:25:09.000000000 +0800
@@ -626,10 +626,10 @@ int load_crashdump_segments(struct kexec
 	unsigned long sz, bufsz, memsz, elfcorehdr;
 	int nr_ranges, align = 1024, i;
 	struct memory_range *mem_range, *memmap_p;
-	unsigned long tmp_backup_end;
 
-	get_backup_area(&info->backup_src_start, &tmp_backup_end);
-	info->backup_src_size =  tmp_backup_end - info->backup_src_start + 1;
+	get_backup_area(&info->backup_src_start, &elf_info.backup_src_end);
+	elf_info.backup_src_start = info->backup_src_start;
+	info->backup_src_size =  elf_info.backup_src_end - info->backup_src_start + 1;
 
 	if (get_kernel_paddr(info))
 		return -1;
