kfan / rpms / kexec-tools

Forked from rpms/kexec-tools 3 years ago
Clone
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
 		}