|
|
558bea7 |
diff -up kexec-tools-testing-20070330/purgatory/arch/ia64/purgatory-ia64.c.orig kexec-tools-testing-20070330/purgatory/arch/ia64/purgatory-ia64.c
|
|
|
558bea7 |
--- kexec-tools-testing-20070330/purgatory/arch/ia64/purgatory-ia64.c.orig 2007-03-30 00:34:36.000000000 -0400
|
|
|
558bea7 |
+++ kexec-tools-testing-20070330/purgatory/arch/ia64/purgatory-ia64.c 2008-03-26 08:05:11.000000000 -0400
|
|
|
558bea7 |
@@ -123,6 +123,7 @@ typedef struct {
|
|
|
558bea7 |
struct loaded_segment {
|
|
|
558bea7 |
unsigned long start;
|
|
|
558bea7 |
unsigned long end;
|
|
|
558bea7 |
+ unsigned long reserved;
|
|
|
558bea7 |
};
|
|
|
558bea7 |
|
|
|
558bea7 |
struct kexec_boot_params {
|
|
|
558bea7 |
@@ -201,7 +202,8 @@ patch_efi_memmap(struct kexec_boot_param
|
|
|
558bea7 |
}
|
|
|
558bea7 |
dst_md->phys_addr = seg->start;
|
|
|
558bea7 |
dst_md->num_pages = mid_pages;
|
|
|
558bea7 |
- dst_md->type = EFI_LOADER_DATA;
|
|
|
558bea7 |
+ dst_md->type = seg->reserved ?
|
|
|
558bea7 |
+ EFI_UNUSABLE_MEMORY:EFI_LOADER_DATA;
|
|
|
558bea7 |
if (!end_pages)
|
|
|
558bea7 |
break;
|
|
|
558bea7 |
dest += boot_param->efi_memdesc_size;
|
|
|
558bea7 |
diff -up kexec-tools-testing-20070330/kexec/arch/ia64/crashdump-ia64.c.orig kexec-tools-testing-20070330/kexec/arch/ia64/crashdump-ia64.c
|
|
|
558bea7 |
--- kexec-tools-testing-20070330/kexec/arch/ia64/crashdump-ia64.c.orig 2007-03-30 00:34:36.000000000 -0400
|
|
|
558bea7 |
+++ kexec-tools-testing-20070330/kexec/arch/ia64/crashdump-ia64.c 2008-03-26 08:05:11.000000000 -0400
|
|
|
558bea7 |
@@ -53,6 +53,7 @@ static unsigned long kernel_code_end;
|
|
|
558bea7 |
struct loaded_segment {
|
|
|
558bea7 |
unsigned long start;
|
|
|
558bea7 |
unsigned long end;
|
|
|
558bea7 |
+ unsigned long reserved;
|
|
|
558bea7 |
};
|
|
|
558bea7 |
|
|
|
558bea7 |
#define MAX_LOAD_SEGMENTS 128
|
|
|
558bea7 |
@@ -87,6 +88,7 @@ static void add_loaded_segments_info(str
|
|
|
558bea7 |
start&~(ELF_PAGE_SIZE-1);
|
|
|
558bea7 |
loaded_segments[loaded_segments_num].end =
|
|
|
558bea7 |
(end + ELF_PAGE_SIZE - 1)&~(ELF_PAGE_SIZE - 1);
|
|
|
558bea7 |
+ loaded_segments[loaded_segments_num].reserved = 0;
|
|
|
558bea7 |
loaded_segments_num++;
|
|
|
558bea7 |
}
|
|
|
558bea7 |
}
|
|
|
558bea7 |
@@ -239,6 +241,7 @@ int load_crashdump_segments(struct kexec
|
|
|
558bea7 |
loaded_segments[loaded_segments_num].start = elfcorehdr;
|
|
|
558bea7 |
loaded_segments[loaded_segments_num].end = elfcorehdr +
|
|
|
558bea7 |
sz;
|
|
|
558bea7 |
+ loaded_segments[loaded_segments_num].reserved = 1;
|
|
|
558bea7 |
loaded_segments_num++;
|
|
|
558bea7 |
cmdline_add_elfcorehdr(cmdline, elfcorehdr);
|
|
|
558bea7 |
}
|