From 2e66fb4fde0b5d77903be3e379b19380af09e364 Mon Sep 17 00:00:00 2001 From: Neil Horman Date: Fri, 8 May 2009 17:11:21 +0000 Subject: [PATCH] Resolves: bz 499849 --- .cvsignore | 1 + kexec-tools-1.102pre-bzimage-options.patch | 34 -- kexec-tools-1.102pre-cmdline-length.patch | 79 ----- ...c-tools-1.102pre-disable-kdump-x8664.patch | 14 - kexec-tools-1.102pre-disable-kexec-test.patch | 13 - kexec-tools-1.102pre-elf-core-type.patch | 11 - kexec-tools-1.102pre-elf-format.patch | 22 -- kexec-tools-1.102pre-ia64-altix_vmcore.patch | 27 -- ...tools-1.102pre-ia64-efi_ususable_map.patch | 48 --- ...tools-1.102pre-makedumpfile-makefile.patch | 15 - ...tools-1.102pre-makedumpfile-xen-syms.patch | 81 ----- kexec-tools-1.102pre-ppc-boots-ppc64.patch | 299 ------------------ kexec-tools-1.102pre-ppc-fixup.patch | 10 - ...tools-1.102pre-ppc64-buffer-overflow.patch | 33 -- kexec-tools-1.102pre-ppc64-devtree.patch | 65 ---- kexec-tools-1.102pre-ppc64-rtas.patch | 29 -- kexec-tools-1.102pre-ppc64_rmo_top.patch | 13 - kexec-tools-1.102pre-vmcoreinfo.patch | 94 ------ ...-tools-1.102pre-x86-add_buffer_retry.patch | 60 ---- kexec-tools-1.102pre-x86-phys_base.patch | 20 -- kexec-tools-1.102pre-x86_64-exactmap.patch | 21 -- kexec-tools-2.0.0-makedumpfile-manpage.patch | 19 -- kexec-tools.spec | 19 +- sources | 2 +- 24 files changed, 11 insertions(+), 1018 deletions(-) delete mode 100644 kexec-tools-1.102pre-bzimage-options.patch delete mode 100644 kexec-tools-1.102pre-cmdline-length.patch delete mode 100644 kexec-tools-1.102pre-disable-kdump-x8664.patch delete mode 100644 kexec-tools-1.102pre-disable-kexec-test.patch delete mode 100644 kexec-tools-1.102pre-elf-core-type.patch delete mode 100644 kexec-tools-1.102pre-elf-format.patch delete mode 100644 kexec-tools-1.102pre-ia64-altix_vmcore.patch delete mode 100644 kexec-tools-1.102pre-ia64-efi_ususable_map.patch delete mode 100644 kexec-tools-1.102pre-makedumpfile-makefile.patch delete mode 100644 kexec-tools-1.102pre-makedumpfile-xen-syms.patch delete mode 100644 kexec-tools-1.102pre-ppc-boots-ppc64.patch delete mode 100644 kexec-tools-1.102pre-ppc-fixup.patch delete mode 100644 kexec-tools-1.102pre-ppc64-buffer-overflow.patch delete mode 100644 kexec-tools-1.102pre-ppc64-devtree.patch delete mode 100644 kexec-tools-1.102pre-ppc64-rtas.patch delete mode 100644 kexec-tools-1.102pre-ppc64_rmo_top.patch delete mode 100644 kexec-tools-1.102pre-vmcoreinfo.patch delete mode 100644 kexec-tools-1.102pre-x86-add_buffer_retry.patch delete mode 100644 kexec-tools-1.102pre-x86-phys_base.patch delete mode 100644 kexec-tools-1.102pre-x86_64-exactmap.patch delete mode 100644 kexec-tools-2.0.0-makedumpfile-manpage.patch diff --git a/.cvsignore b/.cvsignore index eaa9db0..d4dff82 100644 --- a/.cvsignore +++ b/.cvsignore @@ -6,3 +6,4 @@ makedumpfile-1.1.5.tar.gz kexec-tools-testing-20070330.tar.bz2 makedumpfile-1.2.6.tar.gz kexec-tools-2.0.0.tar.bz2 +makedumpfile-1.3.3.tar.gz diff --git a/kexec-tools-1.102pre-bzimage-options.patch b/kexec-tools-1.102pre-bzimage-options.patch deleted file mode 100644 index 2798ac6..0000000 --- a/kexec-tools-1.102pre-bzimage-options.patch +++ /dev/null @@ -1,34 +0,0 @@ ---- kexec-tools-testing-20070330/kexec/arch/i386/kexec-bzImage.c.orig 2007-03-30 00:34:36.000000000 -0400 -+++ kexec-tools-testing-20070330/kexec/arch/i386/kexec-bzImage.c 2007-08-27 15:30:42.000000000 -0400 -@@ -326,6 +326,9 @@ - #define OPT_APPEND (OPT_ARCH_MAX+0) - #define OPT_RAMDISK (OPT_ARCH_MAX+1) - #define OPT_REAL_MODE (OPT_ARCH_MAX+2) -+#define OPT_ARGS_ELF (OPT_ARCH_MAX+3) -+#define OPT_ARGS_LINUX (OPT_ARCH_MAX+4) -+#define OPT_ARGS_NONE (OPT_ARCH_MAX+5) - static const struct option options[] = { - KEXEC_ARCH_OPTIONS - { "debug", 0, 0, OPT_DEBUG }, -@@ -334,6 +337,9 @@ - { "initrd", 1, 0, OPT_RAMDISK }, - { "ramdisk", 1, 0, OPT_RAMDISK }, - { "real-mode", 0, 0, OPT_REAL_MODE }, -+ { "args-elf", 0, NULL, OPT_ARGS_ELF }, -+ { "args-linux", 0, NULL, OPT_ARGS_LINUX }, -+ { "args-none", 0, NULL, OPT_ARGS_NONE }, - { 0, 0, 0, 0 }, - }; - static const char short_options[] = KEXEC_ARCH_OPT_STR "d"; -@@ -368,6 +374,11 @@ - case OPT_REAL_MODE: - real_mode_entry = 1; - break; -+ case OPT_ARGS_ELF: -+ case OPT_ARGS_LINUX: -+ case OPT_ARGS_NONE: -+ /* we can ignore these options */ -+ break; - } - } - command_line_len = 0; diff --git a/kexec-tools-1.102pre-cmdline-length.patch b/kexec-tools-1.102pre-cmdline-length.patch deleted file mode 100644 index 51f72f9..0000000 --- a/kexec-tools-1.102pre-cmdline-length.patch +++ /dev/null @@ -1,79 +0,0 @@ -diff -up kexec-tools-testing-20070330/include/x86/x86-linux.h.orig kexec-tools-testing-20070330/include/x86/x86-linux.h ---- kexec-tools-testing-20070330/include/x86/x86-linux.h.orig 2007-03-30 00:34:36.000000000 -0400 -+++ kexec-tools-testing-20070330/include/x86/x86-linux.h 2008-03-13 11:21:45.000000000 -0400 -@@ -144,18 +144,22 @@ struct x86_linux_param_header { - /* 2.04+ */ - uint32_t kernel_alignment; /* 0x230 */ - uint8_t relocatable_kernel; /* 0x234 */ -- uint8_t reserved15[0x2d0 - 0x235]; /* 0x230 */ -+ uint8_t reserved15[3]; /* 0x235 */ -+ uint32_t cmdline_size; /* 0x238 */ -+ uint32_t hardware_subarch; /* 0x23C */ -+ uint64_t hardware_subarch_data; /* 0x240 */ -+ uint8_t reserved16[0x2d0 - 0x248]; /* 0x248 */ - #endif - struct e820entry e820_map[E820MAX]; /* 0x2d0 */ - /* 0x550 */ --#define COMMAND_LINE_SIZE 256 -+#define COMMAND_LINE_SIZE 2048 - }; - - struct x86_linux_faked_param_header { - struct x86_linux_param_header hdr; /* 0x00 */ -- uint8_t reserved16[688]; /* 0x550 */ -- uint8_t command_line[COMMAND_LINE_SIZE]; /* 0x800 */ -- uint8_t reserved17[1792]; /* 0x900 - 0x1000 */ -+ uint8_t reserved17[0xab0]; /* 0x550 */ -+ uint8_t command_line[COMMAND_LINE_SIZE]; /* 0x1000 */ -+ uint8_t reserved18[0x200]; /* 0x1800 - 0x2000 */ - }; - - struct x86_linux_header { -@@ -206,7 +210,11 @@ struct x86_linux_header { - #else - uint32_t kernel_alignment; /* 0x230 */ - uint8_t relocatable_kernel; /* 0x234 */ -- uint8_t tail[32*1024 - 0x235]; /* 0x230 */ -+ uint8_t reserved6[3]; /* 0x235 */ -+ uint32_t cmdline_size; /* 0x238 */ -+ uint32_t hardware_subarch; /* 0x23C */ -+ uint64_t hardware_subarch_data; /* 0x240 */ -+ uint8_t tail[32*1024 - 0x248]; /* 0x248 */ - #endif - } PACKED; - -diff -up kexec-tools-testing-20070330/kexec/arch/i386/kexec-bzImage.c.orig kexec-tools-testing-20070330/kexec/arch/i386/kexec-bzImage.c ---- kexec-tools-testing-20070330/kexec/arch/i386/kexec-bzImage.c.orig 2008-03-13 11:19:03.000000000 -0400 -+++ kexec-tools-testing-20070330/kexec/arch/i386/kexec-bzImage.c 2008-03-13 11:21:45.000000000 -0400 -@@ -134,6 +134,17 @@ int do_bzImage_load(struct kexec_info *i - return -1; - } - -+ if (setup_header.protocol_version >= 0x0206) { -+ if (command_line_len > setup_header.cmdline_size) { -+ printf("Kernel command line too long for kernel!\n"); -+ return -1; -+ } -+ } else { -+ if (command_line_len > 255) { -+ printf("WARNING: This kernel may only support 255 byte command lines\n"); -+ } -+ } -+ - if (setup_header.protocol_version >= 0x0205) { - relocatable_kernel = setup_header.relocatable_kernel; - dfprintf(stdout, "bzImage is relocatable\n"); -diff -up kexec-tools-testing-20070330/kexec/arch/i386/x86-linux-setup.c.orig kexec-tools-testing-20070330/kexec/arch/i386/x86-linux-setup.c ---- kexec-tools-testing-20070330/kexec/arch/i386/x86-linux-setup.c.orig 2007-03-30 00:34:36.000000000 -0400 -+++ kexec-tools-testing-20070330/kexec/arch/i386/x86-linux-setup.c 2008-03-13 11:21:45.000000000 -0400 -@@ -38,8 +38,9 @@ void init_linux_parameters(struct x86_li - - /* Boot block magic */ - memcpy(real_mode->header_magic, "HdrS", 4); -- real_mode->protocol_version = 0x0203; -+ real_mode->protocol_version = 0x0206; - real_mode->initrd_addr_max = DEFAULT_INITRD_ADDR_MAX; -+ real_mode->cmdline_size = COMMAND_LINE_SIZE; - } - - void setup_linux_bootloader_parameters( diff --git a/kexec-tools-1.102pre-disable-kdump-x8664.patch b/kexec-tools-1.102pre-disable-kdump-x8664.patch deleted file mode 100644 index 7f76c33..0000000 --- a/kexec-tools-1.102pre-disable-kdump-x8664.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- kexec-tools-1.101/Makefile.orig 2005-11-03 10:34:21.000000000 -0500 -+++ kexec-tools-1.101/Makefile 2005-11-03 10:34:47.000000000 -0500 -@@ -43,9 +43,9 @@ PKGLIBDIR=$(LIBDIR)/$(PACKAGE) - PKGINCLUDEIR=$(INCLUDEDIR)/$(PACKAGE) - - MAN_PAGES:= kexec/kexec.8 --BINARIES_i386:= $(SBINDIR)/kexec $(PKGLIBDIR)/kexec_test -+BINARIES_i386:= $(SBINDIR)/kexec $(PKGLIBDIR)/kexec_test $(SBINDIR)/kdump - BINARIES_x86_64:=$(SBINDIR)/kexec $(PKGLIBDIR)/kexec_test --BINARIES:=$(SBINDIR)/kexec $(SBINDIR)/kdump $(BINARIES_$(ARCH)) -+BINARIES:=$(SBINDIR)/kexec $(BINARIES_$(ARCH)) - - TARGETS:=$(BINARIES) $(MAN_PAGES) - diff --git a/kexec-tools-1.102pre-disable-kexec-test.patch b/kexec-tools-1.102pre-disable-kexec-test.patch deleted file mode 100644 index 1d56d4a..0000000 --- a/kexec-tools-1.102pre-disable-kexec-test.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- kexec-tools-testing-20070330/Makefile.old 2007-08-27 15:18:35.000000000 -0400 -+++ kexec-tools-testing-20070330/Makefile 2007-08-27 15:18:52.000000000 -0400 -@@ -44,8 +44,8 @@ - - MAN_PAGES:= kexec/kexec.8 - MAN_PAGES+= kdump/kdump.8 --BINARIES_i386:= $(SBINDIR)/kexec $(PKGLIBDIR)/kexec_test --BINARIES_x86_64:=$(SBINDIR)/kexec $(PKGLIBDIR)/kexec_test -+BINARIES_i386:= $(SBINDIR)/kexec -+BINARIES_x86_64:=$(SBINDIR)/kexec - BINARIES:=$(SBINDIR)/kexec $(SBINDIR)/kdump $(BINARIES_$(ARCH)) - - TARGETS:=$(BINARIES) $(MAN_PAGES) diff --git a/kexec-tools-1.102pre-elf-core-type.patch b/kexec-tools-1.102pre-elf-core-type.patch deleted file mode 100644 index 0296076..0000000 --- a/kexec-tools-1.102pre-elf-core-type.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- kexec-tools-1.101/kexec/arch/i386/kexec-x86.c.orig 2006-11-15 16:28:04.000000000 -0500 -+++ kexec-tools-1.101/kexec/arch/i386/kexec-x86.c 2006-11-15 16:28:13.000000000 -0500 -@@ -145,7 +145,7 @@ - .serial_baud = 0, - .console_vga = 0, - .console_serial = 0, -- .core_header_type = CORE_TYPE_ELF64, -+ .core_header_type = CORE_TYPE_ELF32, - }; - - int arch_process_options(int argc, char **argv) diff --git a/kexec-tools-1.102pre-elf-format.patch b/kexec-tools-1.102pre-elf-format.patch deleted file mode 100644 index 446080f..0000000 --- a/kexec-tools-1.102pre-elf-format.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- kexec-tools-1.101/kexec/arch/x86_64/kexec-elf-x86_64.c.fix 2006-08-29 20:07:34.000000000 -0400 -+++ kexec-tools-1.101/kexec/arch/x86_64/kexec-elf-x86_64.c 2006-08-29 20:08:03.000000000 -0400 -@@ -120,7 +120,7 @@ int elf_x86_64_load(int argc, char **arg - /* - * Parse the command line arguments - */ -- arg_style = ARG_STYLE_ELF; -+ arg_style = ARG_STYLE_LINUX; - command_line = 0; - modified_cmdline = 0; - modified_cmdline_len = 0; ---- kexec-tools-1.101/kexec/arch/i386/kexec-elf-x86.c.fix 2006-08-29 20:07:14.000000000 -0400 -+++ kexec-tools-1.101/kexec/arch/i386/kexec-elf-x86.c 2006-08-29 20:07:24.000000000 -0400 -@@ -121,7 +121,7 @@ int elf_x86_load(int argc, char **argv, - /* - * Parse the command line arguments - */ -- arg_style = ARG_STYLE_ELF; -+ arg_style = ARG_STYLE_LINUX; - command_line = 0; - modified_cmdline = 0; - modified_cmdline_len = 0; diff --git a/kexec-tools-1.102pre-ia64-altix_vmcore.patch b/kexec-tools-1.102pre-ia64-altix_vmcore.patch deleted file mode 100644 index 53979c2..0000000 --- a/kexec-tools-1.102pre-ia64-altix_vmcore.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff -up kexec-tools-testing-20070330/kexec/arch/ia64/crashdump-ia64.c.orig kexec-tools-testing-20070330/kexec/arch/ia64/crashdump-ia64.c ---- kexec-tools-testing-20070330/kexec/arch/ia64/crashdump-ia64.c.orig 2008-04-08 14:36:59.000000000 -0400 -+++ kexec-tools-testing-20070330/kexec/arch/ia64/crashdump-ia64.c 2008-04-08 14:41:43.000000000 -0400 -@@ -224,9 +224,22 @@ int load_crashdump_segments(struct kexec - void *tmp; - if (info->kexec_flags & KEXEC_ON_CRASH ) { - if (get_crash_memory_ranges(&mem_range, &nr_ranges) == 0) { -+ int i; - - info->kern_paddr_start = kernel_code_start; -- info->kern_vaddr_start = LOAD_OFFSET; -+ for (i=0; i < nr_ranges; i++) { -+ unsigned long long mstart = crash_memory_range[i].start; -+ unsigned long long mend = crash_memory_range[i].end; -+ if (!mstart && !mend) -+ continue; -+ if (kernel_code_start >= mstart && -+ kernel_code_start < mend) { -+ info->kern_vaddr_start = mstart + -+ LOAD_OFFSET; -+ break; -+ } -+ } -+ - info->kern_size = kernel_code_end - kernel_code_start + 1; - if (crash_create_elf64_headers(info, &elf_info, - crash_memory_range, diff --git a/kexec-tools-1.102pre-ia64-efi_ususable_map.patch b/kexec-tools-1.102pre-ia64-efi_ususable_map.patch deleted file mode 100644 index f343da7..0000000 --- a/kexec-tools-1.102pre-ia64-efi_ususable_map.patch +++ /dev/null @@ -1,48 +0,0 @@ -diff -up kexec-tools-testing-20070330/purgatory/arch/ia64/purgatory-ia64.c.orig kexec-tools-testing-20070330/purgatory/arch/ia64/purgatory-ia64.c ---- kexec-tools-testing-20070330/purgatory/arch/ia64/purgatory-ia64.c.orig 2007-03-30 00:34:36.000000000 -0400 -+++ kexec-tools-testing-20070330/purgatory/arch/ia64/purgatory-ia64.c 2008-03-26 08:05:11.000000000 -0400 -@@ -123,6 +123,7 @@ typedef struct { - struct loaded_segment { - unsigned long start; - unsigned long end; -+ unsigned long reserved; - }; - - struct kexec_boot_params { -@@ -201,7 +202,8 @@ patch_efi_memmap(struct kexec_boot_param - } - dst_md->phys_addr = seg->start; - dst_md->num_pages = mid_pages; -- dst_md->type = EFI_LOADER_DATA; -+ dst_md->type = seg->reserved ? -+ EFI_UNUSABLE_MEMORY:EFI_LOADER_DATA; - if (!end_pages) - break; - dest += boot_param->efi_memdesc_size; -diff -up kexec-tools-testing-20070330/kexec/arch/ia64/crashdump-ia64.c.orig kexec-tools-testing-20070330/kexec/arch/ia64/crashdump-ia64.c ---- kexec-tools-testing-20070330/kexec/arch/ia64/crashdump-ia64.c.orig 2007-03-30 00:34:36.000000000 -0400 -+++ kexec-tools-testing-20070330/kexec/arch/ia64/crashdump-ia64.c 2008-03-26 08:05:11.000000000 -0400 -@@ -53,6 +53,7 @@ static unsigned long kernel_code_end; - struct loaded_segment { - unsigned long start; - unsigned long end; -+ unsigned long reserved; - }; - - #define MAX_LOAD_SEGMENTS 128 -@@ -87,6 +88,7 @@ static void add_loaded_segments_info(str - start&~(ELF_PAGE_SIZE-1); - loaded_segments[loaded_segments_num].end = - (end + ELF_PAGE_SIZE - 1)&~(ELF_PAGE_SIZE - 1); -+ loaded_segments[loaded_segments_num].reserved = 0; - loaded_segments_num++; - } - } -@@ -239,6 +241,7 @@ int load_crashdump_segments(struct kexec - loaded_segments[loaded_segments_num].start = elfcorehdr; - loaded_segments[loaded_segments_num].end = elfcorehdr + - sz; -+ loaded_segments[loaded_segments_num].reserved = 1; - loaded_segments_num++; - cmdline_add_elfcorehdr(cmdline, elfcorehdr); - } diff --git a/kexec-tools-1.102pre-makedumpfile-makefile.patch b/kexec-tools-1.102pre-makedumpfile-makefile.patch deleted file mode 100644 index fe34345..0000000 --- a/kexec-tools-1.102pre-makedumpfile-makefile.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff -up kexec-tools-testing-20070330/makedumpfile/Makefile.orig kexec-tools-testing-20070330/makedumpfile/Makefile ---- kexec-tools-testing-20070330/makedumpfile/Makefile.orig 2008-01-03 08:56:42.000000000 -0500 -+++ kexec-tools-testing-20070330/makedumpfile/Makefile 2008-01-03 08:57:36.000000000 -0500 -@@ -4,9 +4,9 @@ VERSION=1.1.5 - DATE=27 July 2007 - - CC = gcc --CFLAGS = -g -O2 -Wall -D_FILE_OFFSET_BITS=64 \ -+CFLAGS = -g -O2 -Wall -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE \ - -DVERSION='"$(VERSION)"' -DRELEASE_DATE='"$(DATE)"' --CFLAGS_ARCH = -g -O2 -Wall -D_FILE_OFFSET_BITS=64 -+CFLAGS_ARCH = -g -O2 -Wall -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE - - ARCH := $(shell uname -m | sed -e s/i.86/x86/ -e s/sun4u/sparc64/ \ - -e s/arm.*/arm/ -e s/sa110/arm/ \ diff --git a/kexec-tools-1.102pre-makedumpfile-xen-syms.patch b/kexec-tools-1.102pre-makedumpfile-xen-syms.patch deleted file mode 100644 index 207a43f..0000000 --- a/kexec-tools-1.102pre-makedumpfile-xen-syms.patch +++ /dev/null @@ -1,81 +0,0 @@ ---- kexec-tools-1.101/makedumpfile/makedumpfile.c.orig 2007-07-27 13:16:28.000000000 -0400 -+++ kexec-tools-1.101/makedumpfile/makedumpfile.c 2007-08-22 13:20:04.000000000 -0400 -@@ -5195,6 +5195,9 @@ - int i; - struct pt_load_segment *pls; - int ret = FALSE; -+ unsigned long long paddr; -+ off_t offset_page; -+ unsigned char *buf = NULL; - - /* - * NOTE: the first half of bitmap is not used for Xen extraction -@@ -5211,6 +5214,11 @@ - strerror(errno)); - goto out; - } -+ if ((buf = malloc(info->page_size)) == NULL) { -+ ERRMSG("Can't allocate memory for the page. %s\n", -+ strerror(errno)); -+ goto out; -+ } - - pfn = 0; - for (i = 0; i < info->num_load_memory; i++) { -@@ -5255,11 +5263,35 @@ - * - xen heap area, or - * - selected domain page - */ -- if (_domain == 0 || -+ if (!(_domain == 0 || - (info->xen_heap_start <= pfn && pfn < info->xen_heap_end) || -- ((count_info & 0xffff) && is_select_domain(info, _domain))) { -- set_bitmap(bm2.buf, pfn%PFN_BUFBITMAP, 1); -+ ((count_info & 0xffff) && is_select_domain(info, _domain)))) { -+ continue; -+ } -+ if (info->dump_level & DL_EXCLUDE_ZERO) { -+ paddr = (unsigned long long)pfn * info->page_size; -+ offset_page = paddr_to_offset(info, paddr); -+ if (!offset_page) { -+ ERRMSG("Can't convert physaddr(%llx) to a offset.\n", -+ paddr); -+ goto out; -+ } -+ if (lseek(info->fd_memory, offset_page, -+ SEEK_SET) == (off_t)-1) { -+ ERRMSG("Can't seek the dump memory(%s). %s\n", -+ info->name_memory, strerror(errno)); -+ goto out; -+ } -+ if (read(info->fd_memory, buf, info->page_size) -+ != info->page_size) { -+ ERRMSG("Can't read the dump memory(%s). %s\n", -+ info->name_memory, strerror(errno)); -+ goto out; -+ } -+ if (is_zero_page(buf, info->page_size)) -+ continue; - } -+ set_bitmap(bm2.buf, pfn%PFN_BUFBITMAP, 1); - } - } - -@@ -5275,6 +5307,8 @@ - out: - if (bm2.buf != NULL) - free(bm2.buf); -+ if (buf != NULL) -+ free(buf); - - return ret; - } -@@ -5546,7 +5580,7 @@ - MSG("-E must be specified with --xen-syms or --xen-vmcoreinfo.\n"); - goto out; - } -- info->dump_level = DL_EXCLUDE_XEN; -+ info->dump_level |= DL_EXCLUDE_XEN; - return handle_xen(info); - - } else if (info->flag_rearrange) { diff --git a/kexec-tools-1.102pre-ppc-boots-ppc64.patch b/kexec-tools-1.102pre-ppc-boots-ppc64.patch deleted file mode 100644 index 748c012..0000000 --- a/kexec-tools-1.102pre-ppc-boots-ppc64.patch +++ /dev/null @@ -1,299 +0,0 @@ -diff -up kexec-tools-testing-20070330/purgatory/purgatory.c.orig kexec-tools-testing-20070330/purgatory/purgatory.c ---- kexec-tools-testing-20070330/purgatory/purgatory.c.orig 2007-03-30 00:34:36.000000000 -0400 -+++ kexec-tools-testing-20070330/purgatory/purgatory.c 2008-02-28 10:46:42.000000000 -0500 -@@ -46,3 +46,5 @@ void purgatory(void) - verify_sha256_digest(); - post_verification_setup_arch(); - } -+ -+#include "../util_lib/sha256.c" -diff -up kexec-tools-testing-20070330/purgatory/arch/ppc64/Makefile.orig kexec-tools-testing-20070330/purgatory/arch/ppc64/Makefile ---- kexec-tools-testing-20070330/purgatory/arch/ppc64/Makefile.orig 2007-03-30 00:34:36.000000000 -0400 -+++ kexec-tools-testing-20070330/purgatory/arch/ppc64/Makefile 2008-02-28 10:46:42.000000000 -0500 -@@ -6,3 +6,5 @@ PURGATORY_S_SRCS+= purgatory/arch/ppc64/ - PURGATORY_C_SRCS += purgatory/arch/ppc64/purgatory-ppc64.c - PURGATORY_C_SRCS += purgatory/arch/ppc64/console-ppc64.c - PURGATORY_C_SRCS += purgatory/arch/ppc64/crashdump_backup.c -+ -+PCFLAGS += -m64 -mcall-aixdesc -diff -up kexec-tools-testing-20070330/purgatory/Makefile.orig kexec-tools-testing-20070330/purgatory/Makefile ---- kexec-tools-testing-20070330/purgatory/Makefile.orig 2007-03-30 00:34:36.000000000 -0400 -+++ kexec-tools-testing-20070330/purgatory/Makefile 2008-02-28 10:50:37.000000000 -0500 -@@ -57,9 +57,9 @@ $(PURGATORY_S_OBJS): $(OBJDIR)/%.o: %.S - $(MKDIR) -p $(@D) - $(CC) $(PCFLAGS) -o $@ -c $< - --$(PURGATORY): $(PURGATORY_OBJS) $(UTIL_LIB) -+$(PURGATORY): $(PURGATORY_OBJS) - $(MKDIR) -p $(@D) -- $(LD) $(LDFLAGS) $(EXTRA_LDFLAGS) --no-undefined -e purgatory_start -r -o $@ $(PURGATORY_OBJS) $(UTIL_LIB) -+ $(LD) $(LDFLAGS) $(EXTRA_LDFLAGS) --no-undefined -e purgatory_start -r -o $@ $(PURGATORY_OBJS) - - echo:: - @echo "PURGATORY_C_SRCS $(PURGATORY_C_SRCS)" -diff -up kexec-tools-testing-20070330/kexec/arch/ppc64/kexec-elf-rel-ppc64.c.orig kexec-tools-testing-20070330/kexec/arch/ppc64/kexec-elf-rel-ppc64.c ---- kexec-tools-testing-20070330/kexec/arch/ppc64/kexec-elf-rel-ppc64.c.orig 2007-03-30 00:34:36.000000000 -0400 -+++ kexec-tools-testing-20070330/kexec/arch/ppc64/kexec-elf-rel-ppc64.c 2008-02-28 10:46:42.000000000 -0500 -@@ -101,10 +101,10 @@ void machine_apply_elf_rel(struct mem_eh - break; - - case R_PPC64_ADDR16_HIGHEST: -- *(uint16_t *)location = ((value>>48) & 0xffff); -+ *(uint16_t *)location = (((uint64_t)value>>48) & 0xffff); - break; - case R_PPC64_ADDR16_HIGHER: -- *(uint16_t *)location = ((value>>32) & 0xffff); -+ *(uint16_t *)location = (((uint64_t)value>>32) & 0xffff); - break; - - default: -diff -up kexec-tools-testing-20070330/kexec/arch/ppc64/kexec-ppc64.h.orig kexec-tools-testing-20070330/kexec/arch/ppc64/kexec-ppc64.h ---- kexec-tools-testing-20070330/kexec/arch/ppc64/kexec-ppc64.h.orig 2007-03-30 00:34:36.000000000 -0400 -+++ kexec-tools-testing-20070330/kexec/arch/ppc64/kexec-ppc64.h 2008-02-28 10:51:16.000000000 -0500 -@@ -14,7 +14,7 @@ int elf_ppc64_load(int argc, char **argv - void elf_ppc64_usage(void); - void reserve(unsigned long long where, unsigned long long length); - --extern unsigned long initrd_base, initrd_size; -+extern uint64_t initrd_base, initrd_size; - extern int max_memory_ranges; - - /* boot block version 2 as defined by the linux kernel */ -diff -up kexec-tools-testing-20070330/kexec/arch/ppc64/kexec-ppc64.c.orig kexec-tools-testing-20070330/kexec/arch/ppc64/kexec-ppc64.c ---- kexec-tools-testing-20070330/kexec/arch/ppc64/kexec-ppc64.c.orig 2008-02-28 10:45:00.000000000 -0500 -+++ kexec-tools-testing-20070330/kexec/arch/ppc64/kexec-ppc64.c 2008-02-28 10:54:54.000000000 -0500 -@@ -38,10 +38,10 @@ - static struct memory_range *exclude_range = NULL; - static struct memory_range *memory_range = NULL; - static struct memory_range *base_memory_range = NULL; --static unsigned long long rmo_top; --unsigned long long memory_max = 0; -+static uint64_t rmo_top; -+uint64_t memory_max = 0; - static int nr_memory_ranges, nr_exclude_ranges; --unsigned long long crash_base, crash_size; -+uint64_t crash_base, crash_size; - unsigned int rtas_base, rtas_size; - int max_memory_ranges; - -@@ -175,10 +175,10 @@ static int get_base_ranges() - break; - } - base_memory_range[local_memory_ranges].start = -- ((unsigned long long *)buf)[0]; -+ ((uint64_t *)buf)[0]; - base_memory_range[local_memory_ranges].end = - base_memory_range[local_memory_ranges].start + -- ((unsigned long long *)buf)[1]; -+ ((uint64_t *)buf)[1]; - base_memory_range[local_memory_ranges].type = RANGE_RAM; - local_memory_ranges++; - dfprintf(stderr, "%016llx-%016llx : %x\n", -@@ -206,7 +206,7 @@ static int get_base_ranges() - static int sort_base_ranges() - { - int i, j; -- unsigned long long tstart, tend; -+ uint64_t tstart, tend; - - for (i = 0; i < nr_memory_ranges - 1; i++) { - for (j = 0; j < nr_memory_ranges - i - 1; j++) { -@@ -227,7 +227,7 @@ static int sort_base_ranges() - static int sort_ranges() - { - int i, j; -- unsigned long long tstart, tend; -+ uint64_t tstart, tend; - for (i = 0; i < nr_exclude_ranges - 1; i++) { - for (j = 0; j < nr_exclude_ranges - i - 1; j++) { - if (exclude_range[j].start > exclude_range[j+1].start) { -@@ -248,11 +248,11 @@ static int sort_ranges() - */ - static int get_devtree_details(unsigned long kexec_flags) - { -- unsigned long long rmo_base; -- unsigned long long tce_base; -+ uint64_t rmo_base; -+ uint64_t tce_base; - unsigned int tce_size; -- unsigned long long htab_base, htab_size; -- unsigned long long kernel_end; -+ uint64_t htab_base, htab_size; -+ uint64_t kernel_end; - char buf[MAXBYTES]; - char device_tree[256] = "/proc/device-tree/"; - char fname[256]; -@@ -288,7 +288,7 @@ static int get_devtree_details(unsigned - closedir(dir); - return -1; - } -- if (fread(&kernel_end, sizeof(unsigned long), 1, file) != 1) { -+ if (fread(&kernel_end, sizeof(uint64_t), 1, file) != 1) { - perror(fname); - fclose(file); - closedir(cdir); -@@ -313,7 +313,7 @@ static int get_devtree_details(unsigned - closedir(dir); - return -1; - } -- if (fread(&crash_base, sizeof(unsigned long), 1, -+ if (fread(&crash_base, sizeof(uint64_t), 1, - file) != 1) { - perror(fname); - fclose(file); -@@ -333,7 +333,7 @@ static int get_devtree_details(unsigned - closedir(dir); - return -1; - } -- if (fread(&crash_size, sizeof(unsigned long), 1, -+ if (fread(&crash_size, sizeof(uint64_t), 1, - file) != 1) { - perror(fname); - fclose(file); -@@ -366,7 +366,7 @@ static int get_devtree_details(unsigned - closedir(dir); - return -1; - } -- if (fread(&htab_base, sizeof(unsigned long), 1, file) != 1) { -+ if (fread(&htab_base, sizeof(uint64_t), 1, file) != 1) { - perror(fname); - fclose(file); - closedir(cdir); -@@ -383,7 +383,7 @@ static int get_devtree_details(unsigned - closedir(dir); - return -1; - } -- if (fread(&htab_size, sizeof(unsigned long), 1, file) != 1) { -+ if (fread(&htab_size, sizeof(uint64_t), 1, file) != 1) { - perror(fname); - fclose(file); - closedir(cdir); -@@ -452,8 +452,8 @@ static int get_devtree_details(unsigned - closedir(dir); - return -1; - } -- rmo_base = ((unsigned long long *)buf)[0]; -- rmo_top = rmo_base + ((unsigned long long *)buf)[1]; -+ rmo_base = ((uint64_t *)buf)[0]; -+ rmo_top = rmo_base + ((uint64_t *)buf)[1]; - if (rmo_top > 0x07C00000UL) - rmo_top = 0x07C00000UL; - -@@ -474,7 +474,7 @@ static int get_devtree_details(unsigned - closedir(dir); - return -1; - } -- if (fread(&tce_base, sizeof(unsigned long), 1, file) != 1) { -+ if (fread(&tce_base, sizeof(uint64_t), 1, file) != 1) { - perror(fname); - fclose(file); - closedir(cdir); -diff -up kexec-tools-testing-20070330/kexec/arch/ppc64/crashdump-ppc64.h.orig kexec-tools-testing-20070330/kexec/arch/ppc64/crashdump-ppc64.h ---- kexec-tools-testing-20070330/kexec/arch/ppc64/crashdump-ppc64.h.orig 2007-03-30 00:34:36.000000000 -0400 -+++ kexec-tools-testing-20070330/kexec/arch/ppc64/crashdump-ppc64.h 2008-02-28 10:55:38.000000000 -0500 -@@ -23,8 +23,8 @@ void add_usable_mem_rgns(unsigned long l - #define _ALIGN_UP(addr,size) (((addr)+((size)-1))&(~((size)-1))) - #define _ALIGN_DOWN(addr,size) ((addr)&(~((size)-1))) - --extern unsigned long long crash_base; --extern unsigned long long crash_size; -+extern uint64_t crash_base; -+extern uint64_t crash_size; - extern unsigned int rtas_base; - extern unsigned int rtas_size; - -diff -up kexec-tools-testing-20070330/kexec/arch/ppc64/kexec-elf-ppc64.c.orig kexec-tools-testing-20070330/kexec/arch/ppc64/kexec-elf-ppc64.c ---- kexec-tools-testing-20070330/kexec/arch/ppc64/kexec-elf-ppc64.c.orig 2007-03-30 00:34:36.000000000 -0400 -+++ kexec-tools-testing-20070330/kexec/arch/ppc64/kexec-elf-ppc64.c 2008-02-28 10:46:42.000000000 -0500 -@@ -42,7 +42,7 @@ - #define BOOTLOADER "kexec" - #define BOOTLOADER_VERSION VERSION - --unsigned long initrd_base, initrd_size; -+uint64_t initrd_base, initrd_size; - - int create_flatten_tree(struct kexec_info *, unsigned char **, unsigned long *, - char *); -@@ -76,19 +76,19 @@ int elf_ppc64_load(int argc, char **argv - char *cmdline, *modified_cmdline; - const char *ramdisk, *devicetreeblob; - int cmdline_len, modified_cmdline_len; -- unsigned long long max_addr, hole_addr; -+ uint64_t max_addr, hole_addr; - unsigned char *seg_buf = NULL; - off_t seg_size = 0; - struct mem_phdr *phdr; - size_t size; -- unsigned long long *rsvmap_ptr; -+ uint64_t *rsvmap_ptr; - struct bootblock *bb_ptr; - unsigned int nr_segments, i; - int result, opt; -- unsigned long my_kernel, my_dt_offset; -+ uint64_t my_kernel, my_dt_offset; - unsigned int my_panic_kernel; -- unsigned long my_stack, my_backup_start; -- unsigned long toc_addr; -+ uint64_t my_stack, my_backup_start; -+ uint64_t toc_addr; - - #define OPT_APPEND (OPT_ARCH_MAX+0) - #define OPT_RAMDISK (OPT_ARCH_MAX+1) -@@ -226,10 +226,10 @@ int elf_ppc64_load(int argc, char **argv - } - seg_buf = (unsigned char *)slurp_file(ramdisk, &seg_size); - add_buffer(info, seg_buf, seg_size, seg_size, 0, 0, max_addr, 1); -- hole_addr = (unsigned long long) -+ hole_addr = (uint64_t) - info->segment[info->nr_segments-1].mem; - initrd_base = hole_addr; -- initrd_size = (unsigned long long) -+ initrd_size = (uint64_t) - info->segment[info->nr_segments-1].memsz; - } /* ramdisk */ - -@@ -259,25 +259,25 @@ int elf_ppc64_load(int argc, char **argv - */ - bb_ptr = (struct bootblock *)( - (unsigned char *)info->segment[(info->nr_segments)-1].buf); -- rsvmap_ptr = (unsigned long long *)( -+ rsvmap_ptr = (uint64_t *)( - (unsigned char *)info->segment[(info->nr_segments)-1].buf + - bb_ptr->off_mem_rsvmap); - while (*rsvmap_ptr || *(rsvmap_ptr+1)) - rsvmap_ptr += 2; - rsvmap_ptr -= 2; -- *rsvmap_ptr = (unsigned long long)( -+ *rsvmap_ptr = (uint64_t)( - info->segment[(info->nr_segments)-1].mem); - rsvmap_ptr++; -- *rsvmap_ptr = (unsigned long long)bb_ptr->totalsize; -+ *rsvmap_ptr = (uint64_t)bb_ptr->totalsize; - - nr_segments = info->nr_segments; - - /* Set kernel */ -- my_kernel = (unsigned long )info->segment[0].mem; -+ my_kernel = (uint64_t)info->segment[0].mem; - elf_rel_set_symbol(&info->rhdr, "kernel", &my_kernel, sizeof(my_kernel)); - - /* Set dt_offset */ -- my_dt_offset = (unsigned long )info->segment[nr_segments-1].mem; -+ my_dt_offset = (uint64_t)info->segment[nr_segments-1].mem; - elf_rel_set_symbol(&info->rhdr, "dt_offset", &my_dt_offset, - sizeof(my_dt_offset)); - -diff -up kexec-tools-testing-20070330/kexec/kexec-sha256.h.orig kexec-tools-testing-20070330/kexec/kexec-sha256.h ---- kexec-tools-testing-20070330/kexec/kexec-sha256.h.orig 2007-03-30 00:34:36.000000000 -0400 -+++ kexec-tools-testing-20070330/kexec/kexec-sha256.h 2008-02-28 10:46:42.000000000 -0500 -@@ -2,8 +2,8 @@ - #define KEXEC_SHA256_H - - struct sha256_region { -- const void *start; -- unsigned long len; -+ uint64_t start; -+ uint64_t len; - }; - - #define SHA256_REGIONS 16 diff --git a/kexec-tools-1.102pre-ppc-fixup.patch b/kexec-tools-1.102pre-ppc-fixup.patch deleted file mode 100644 index e1953dc..0000000 --- a/kexec-tools-1.102pre-ppc-fixup.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- kexec-tools-1.101/kexec/arch/ppc/kexec-ppc.c.orig 2006-07-05 16:21:50.000000000 -0400 -+++ kexec-tools-1.101/kexec/arch/ppc/kexec-ppc.c 2006-07-05 16:22:01.000000000 -0400 -@@ -33,7 +33,6 @@ int get_memory_ranges(struct memory_rang - memory_range[memory_ranges].type = RANGE_RAM; - memory_ranges++; - #else --#error Please, fix this for your platform - const char iomem[] = "/proc/iomem"; - char line[MAX_LINE]; - FILE *fp; diff --git a/kexec-tools-1.102pre-ppc64-buffer-overflow.patch b/kexec-tools-1.102pre-ppc64-buffer-overflow.patch deleted file mode 100644 index db04f39..0000000 --- a/kexec-tools-1.102pre-ppc64-buffer-overflow.patch +++ /dev/null @@ -1,33 +0,0 @@ -diff -up kexec-tools-testing-20070330/kexec/arch/ppc64/kexec-ppc64.c.orig kexec-tools-testing-20070330/kexec/arch/ppc64/kexec-ppc64.c ---- kexec-tools-testing-20070330/kexec/arch/ppc64/kexec-ppc64.c.orig 2008-02-20 10:08:36.000000000 -0500 -+++ kexec-tools-testing-20070330/kexec/arch/ppc64/kexec-ppc64.c 2008-02-20 10:10:32.000000000 -0500 -@@ -133,7 +133,7 @@ static int get_base_ranges() - int local_memory_ranges = 0; - char device_tree[256] = "/proc/device-tree/"; - char fname[256]; -- char buf[MAXBYTES-1]; -+ char buf[MAXBYTES]; - DIR *dir, *dmem; - FILE *file; - struct dirent *dentry, *mentry; -@@ -253,7 +253,7 @@ static int get_devtree_details(unsigned - unsigned int tce_size; - unsigned long long htab_base, htab_size; - unsigned long long kernel_end; -- char buf[MAXBYTES-1]; -+ char buf[MAXBYTES]; - char device_tree[256] = "/proc/device-tree/"; - char fname[256]; - DIR *dir, *cdir; -diff -up kexec-tools-testing-20070330/kexec/arch/ppc64/crashdump-ppc64.c.orig kexec-tools-testing-20070330/kexec/arch/ppc64/crashdump-ppc64.c ---- kexec-tools-testing-20070330/kexec/arch/ppc64/crashdump-ppc64.c.orig 2007-03-30 00:34:36.000000000 -0400 -+++ kexec-tools-testing-20070330/kexec/arch/ppc64/crashdump-ppc64.c 2008-02-20 10:09:23.000000000 -0500 -@@ -101,7 +101,7 @@ static int get_crash_memory_ranges(struc - int memory_ranges = 0; - char device_tree[256] = "/proc/device-tree/"; - char fname[256]; -- char buf[MAXBYTES-1]; -+ char buf[MAXBYTES]; - DIR *dir, *dmem; - FILE *file; - struct dirent *dentry, *mentry; diff --git a/kexec-tools-1.102pre-ppc64-devtree.patch b/kexec-tools-1.102pre-ppc64-devtree.patch deleted file mode 100644 index 824768a..0000000 --- a/kexec-tools-1.102pre-ppc64-devtree.patch +++ /dev/null @@ -1,65 +0,0 @@ -diff -up kexec-tools-testing-20070330/kexec/arch/ppc64/crashdump-ppc64.c.orig kexec-tools-testing-20070330/kexec/arch/ppc64/crashdump-ppc64.c ---- kexec-tools-testing-20070330/kexec/arch/ppc64/crashdump-ppc64.c.orig 2008-03-10 15:08:18.000000000 -0400 -+++ kexec-tools-testing-20070330/kexec/arch/ppc64/crashdump-ppc64.c 2008-03-10 15:15:27.000000000 -0400 -@@ -129,7 +129,8 @@ static int get_crash_memory_ranges(struc - goto err; - } - while ((dentry = readdir(dir)) != NULL) { -- if (strncmp(dentry->d_name, "memory@", 7)) -+ if (strncmp(dentry->d_name, "memory@", 7) && -+ strcmp(dentry->d_name, "memory")) - continue; - strcpy(fname, device_tree); - strcat(fname, dentry->d_name); -diff -up kexec-tools-testing-20070330/kexec/arch/ppc64/kexec-ppc64.c.orig kexec-tools-testing-20070330/kexec/arch/ppc64/kexec-ppc64.c ---- kexec-tools-testing-20070330/kexec/arch/ppc64/kexec-ppc64.c.orig 2008-03-10 15:08:18.000000000 -0400 -+++ kexec-tools-testing-20070330/kexec/arch/ppc64/kexec-ppc64.c 2008-03-10 15:15:27.000000000 -0400 -@@ -101,7 +101,7 @@ err1: - } - - /* -- * Count the memory@ nodes under /proc/device-tree and populate the -+ * Count the memory nodes under /proc/device-tree and populate the - * max_memory_ranges variable. This variable replaces MAX_MEMORY_RANGES - * macro used earlier. - */ -@@ -118,7 +118,8 @@ static int count_memory_ranges() - - while ((dentry = readdir(dir)) != NULL) { - if (strncmp(dentry->d_name, "memory@", 7) && -- strncmp(dentry->d_name, "pci@", 4)) -+ strcmp(dentry->d_name, "memory") && -+ strncmp(dentry->d_name, "pci@", 4)) - continue; - max_memory_ranges++; - } -@@ -144,7 +145,8 @@ static int get_base_ranges() - return -1; - } - while ((dentry = readdir(dir)) != NULL) { -- if (strncmp(dentry->d_name, "memory@", 7)) -+ if (strncmp(dentry->d_name, "memory@", 7) && -+ strcmp(dentry->d_name, "memory")) - continue; - strcpy(fname, device_tree); - strcat(fname, dentry->d_name); -@@ -268,7 +270,8 @@ static int get_devtree_details(unsigned - - while ((dentry = readdir(dir)) != NULL) { - if (strncmp(dentry->d_name, "chosen", 6) && -- strncmp(dentry->d_name, "memory@0", 8) && -+ strncmp(dentry->d_name, "memory@", 7) && -+ strcmp(dentry->d_name, "memory") && - strncmp(dentry->d_name, "pci@", 4) && - strncmp(dentry->d_name, "rtas", 4)) - continue; -@@ -437,7 +440,8 @@ static int get_devtree_details(unsigned - add_usable_mem_rgns(rtas_base, rtas_size); - } /* rtas */ - -- if (strncmp(dentry->d_name, "memory@0", 8) == 0) { -+ if (!strncmp(dentry->d_name, "memory@", 7) || -+ !strcmp(dentry->d_name, "memory")) { - strcat(fname, "/reg"); - if ((file = fopen(fname, "r")) == NULL) { - perror(fname); diff --git a/kexec-tools-1.102pre-ppc64-rtas.patch b/kexec-tools-1.102pre-ppc64-rtas.patch deleted file mode 100644 index 048ac79..0000000 --- a/kexec-tools-1.102pre-ppc64-rtas.patch +++ /dev/null @@ -1,29 +0,0 @@ -diff -up kexec-tools-testing-20070330/kexec/arch/ppc64/crashdump-ppc64.c.orig kexec-tools-testing-20070330/kexec/arch/ppc64/crashdump-ppc64.c ---- kexec-tools-testing-20070330/kexec/arch/ppc64/crashdump-ppc64.c.orig 2008-05-19 15:25:25.000000000 -0400 -+++ kexec-tools-testing-20070330/kexec/arch/ppc64/crashdump-ppc64.c 2008-05-19 15:33:22.000000000 -0400 -@@ -107,6 +107,7 @@ static int get_crash_memory_ranges(struc - struct dirent *dentry, *mentry; - int i, n, crash_rng_len = 0; - unsigned long long start, end, cstart, cend; -+ int page_size = getpagesize(); - - crash_max_memory_ranges = max_memory_ranges + 6; - crash_rng_len = sizeof(struct memory_range) * crash_max_memory_ranges; -@@ -219,6 +220,17 @@ static int get_crash_memory_ranges(struc - if (cend > crash_base + crash_size) - cend = crash_base + crash_size; - crash_memory_range[memory_ranges].start = cstart; -+ /* -+ * The rtas section created here is formed by reading rtas-base -+ * and rtas-size from /proc/device-tree/rtas. Unfortunately -+ * rtas-size is not required to be a multiple of PAGE_SIZE -+ * The remainder of the page it ends on is just garbage, and is -+ * safe to read, its just not accounted in rtas-size. Since -+ * we're creating an elf section here though, lets round it up -+ * to the next page size boundary though, so makedumpfile can -+ * read it safely without going south on us. -+ */ -+ cend = (cend + page_size - 1) & (~(page_size - 1)); - crash_memory_range[memory_ranges++].end = cend; - } - /* diff --git a/kexec-tools-1.102pre-ppc64_rmo_top.patch b/kexec-tools-1.102pre-ppc64_rmo_top.patch deleted file mode 100644 index 6b1fe3f..0000000 --- a/kexec-tools-1.102pre-ppc64_rmo_top.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- kexec-tools-testing-20070330/kexec/arch/ppc64/kexec-ppc64.c.orig 2007-03-30 00:34:36.000000000 -0400 -+++ kexec-tools-testing-20070330/kexec/arch/ppc64/kexec-ppc64.c 2007-08-27 15:35:47.000000000 -0400 -@@ -454,8 +454,8 @@ - } - rmo_base = ((unsigned long long *)buf)[0]; - rmo_top = rmo_base + ((unsigned long long *)buf)[1]; -- if (rmo_top > 0x30000000UL) -- rmo_top = 0x30000000UL; -+ if (rmo_top > 0x07C00000UL) -+ rmo_top = 0x07C00000UL; - - fclose(file); - closedir(cdir); diff --git a/kexec-tools-1.102pre-vmcoreinfo.patch b/kexec-tools-1.102pre-vmcoreinfo.patch deleted file mode 100644 index 28ac10f..0000000 --- a/kexec-tools-1.102pre-vmcoreinfo.patch +++ /dev/null @@ -1,94 +0,0 @@ -diff -rpuN backup/kexec-tools-testing-20070330/kexec/crashdump-elf.c kexec-tools/kexec/crashdump-elf.c ---- backup/kexec-tools-testing-20070330/kexec/crashdump-elf.c 2007-03-30 13:34:36.000000000 +0900 -+++ kexec-tools/kexec/crashdump-elf.c 2007-08-03 14:45:47.000000000 +0900 -@@ -36,6 +36,8 @@ - char *bufp; - long int nr_cpus = 0; - uint64_t notes_addr, notes_len; -+ uint64_t vmcoreinfo_addr, vmcoreinfo_len; -+ int has_vmcoreinfo = 0; - int (*get_note_info)(int cpu, uint64_t *addr, uint64_t *len); - - if (xen_present()) -@@ -47,7 +49,11 @@ - return -1; - } - -- sz = sizeof(EHDR) + nr_cpus * sizeof(PHDR) + ranges * sizeof(PHDR); -+ if (get_kernel_vmcoreinfo(&vmcoreinfo_addr, &vmcoreinfo_len) == 0) { -+ has_vmcoreinfo = 1; -+ } -+ -+ sz = sizeof(EHDR) + (nr_cpus + has_vmcoreinfo) * sizeof(PHDR) + ranges * sizeof(PHDR); - - /* - * Certain architectures such as x86_64 and ia64 require a separate -@@ -148,6 +154,21 @@ - dfprintf_phdr(stdout, "Elf header", phdr); - } - -+ if (has_vmcoreinfo) { -+ phdr = (PHDR *) bufp; -+ bufp += sizeof(PHDR); -+ phdr->p_type = PT_NOTE; -+ phdr->p_flags = 0; -+ phdr->p_offset = phdr->p_paddr = vmcoreinfo_addr; -+ phdr->p_vaddr = 0; -+ phdr->p_filesz = phdr->p_memsz = vmcoreinfo_len; -+ /* Do we need any alignment of segments? */ -+ phdr->p_align = 0; -+ -+ (elf->e_phnum)++; -+ dfprintf_phdr(stdout, "vmcoreinfo header", phdr); -+ } -+ - /* Setup an PT_LOAD type program header for the region where - * Kernel is mapped if info->kern_size is non-zero. - */ ---- backup/kexec-tools-testing-20070330/kexec/crashdump.c 2007-03-30 13:34:36.000000000 +0900 -+++ kexec-tools/kexec/crashdump.c 2007-08-03 14:45:05.000000000 +0900 -@@ -108,3 +108,32 @@ - - return 0; - } -+ -+/* Returns the physical address of start of crash notes buffer for a kernel. */ -+int get_kernel_vmcoreinfo(uint64_t *addr, uint64_t *len) -+{ -+ char kdump_info[PATH_MAX]; -+ char line[MAX_LINE]; -+ int count; -+ FILE *fp; -+ unsigned long long temp, temp2; -+ -+ *addr = 0; -+ *len = 0; -+ -+ sprintf(kdump_info, "/sys/kernel/vmcoreinfo"); -+ fp = fopen(kdump_info, "r"); -+ if (!fp) -+ return -1; -+ -+ if (!fgets(line, sizeof(line), fp)) -+ die("Cannot parse %s: %s\n", kdump_info, strerror(errno)); -+ count = sscanf(line, "%Lx %Lx", &temp, &temp2); -+ if (count != 2) -+ die("Cannot parse %s: %s\n", kdump_info, strerror(errno)); -+ -+ *addr = (uint64_t) temp; -+ *len = (uint64_t) temp2; -+ -+ return 0; -+} -diff -rpuN backup/kexec-tools-testing-20070330/kexec/crashdump.h kexec-tools/kexec/crashdump.h ---- backup/kexec-tools-testing-20070330/kexec/crashdump.h 2007-03-30 13:34:36.000000000 +0900 -+++ kexec-tools/kexec/crashdump.h 2007-08-03 14:45:05.000000000 +0900 -@@ -2,6 +2,7 @@ - #define CRASHDUMP_H - - extern int get_crash_notes_per_cpu(int cpu, uint64_t *addr, uint64_t *len); -+extern int get_kernel_vmcoreinfo(uint64_t *addr, uint64_t *len); - - /* Need to find a better way to determine per cpu notes section size. */ - #define MAX_NOTE_BYTES 1024 -_ diff --git a/kexec-tools-1.102pre-x86-add_buffer_retry.patch b/kexec-tools-1.102pre-x86-add_buffer_retry.patch deleted file mode 100644 index d3d06b4..0000000 --- a/kexec-tools-1.102pre-x86-add_buffer_retry.patch +++ /dev/null @@ -1,60 +0,0 @@ ---- kexec-tools-testing-20070330/kexec/arch/i386/crashdump-x86.c.orig 2007-03-30 00:34:36.000000000 -0400 -+++ kexec-tools-testing-20070330/kexec/arch/i386/crashdump-x86.c 2007-08-27 15:40:22.000000000 -0400 -@@ -497,6 +497,7 @@ - unsigned long sz, elfcorehdr; - int nr_ranges, align = 1024; - struct memory_range *mem_range, *memmap_p; -+ int i; - - if (get_crash_memory_ranges(&mem_range, &nr_ranges) < 0) - return -1; -@@ -543,8 +544,13 @@ - * elf core header segment to 16K to avoid being placed in such gaps. - * This is a makeshift solution until it is fixed in kernel. - */ -- elfcorehdr = add_buffer(info, tmp, sz, 16*1024, align, min_base, -- max_addr, -1); -+ for (i=0;inr_segments; i++) { -+ if ((base < (info->segment[i].mem + info->segment[i].memsz)) && -+ ((base+memsz) > info->segment[i].mem)) { -+ /* -+ *we have an overlap, bump down buf_max -+ */ -+ buf_max = (unsigned long)info->segment[i].mem; -+ goto retry; -+ } -+ } - - add_segment(info, buf, bufsz, base, memsz); - return base; diff --git a/kexec-tools-1.102pre-x86-phys_base.patch b/kexec-tools-1.102pre-x86-phys_base.patch deleted file mode 100644 index bbd1af4..0000000 --- a/kexec-tools-1.102pre-x86-phys_base.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff -up kexec-tools-testing-20070330/makedumpfile/x86_64.c.orig kexec-tools-testing-20070330/makedumpfile/x86_64.c ---- kexec-tools-testing-20070330/makedumpfile/x86_64.c.orig 2008-06-05 01:30:57.000000000 -0400 -+++ kexec-tools-testing-20070330/makedumpfile/x86_64.c 2008-07-14 11:30:05.000000000 -0400 -@@ -148,12 +148,11 @@ vaddr_to_offset_x86_64(unsigned long vad - struct pt_load_segment *pls; - - /* -- * Check the relocatable kernel. -+ * Note this computation of phys_base works for RHEL5 -+ * because we always keep phys_base at 0x200000. This -+ * doesn't work in general - */ -- if (SYMBOL(phys_base) != NOT_FOUND_SYMBOL) -- phys_base = info->phys_base; -- else -- phys_base = 0; -+ phys_base = info->phys_base; - - if (is_vmalloc_addr(vaddr)) { - if ((paddr = vtop4_x86_64(vaddr)) == NOT_PADDR) { diff --git a/kexec-tools-1.102pre-x86_64-exactmap.patch b/kexec-tools-1.102pre-x86_64-exactmap.patch deleted file mode 100644 index 13886ad..0000000 --- a/kexec-tools-1.102pre-x86_64-exactmap.patch +++ /dev/null @@ -1,21 +0,0 @@ ---- kexec-tools-1.101/kexec/arch/x86_64/crashdump-x86_64.c.orig 2006-11-14 12:15:45.000000000 -0500 -+++ kexec-tools-1.101/kexec/arch/x86_64/crashdump-x86_64.c 2006-11-14 12:16:04.000000000 -0500 -@@ -113,6 +113,8 @@ - * initializing acpi tables in second kernel. - */ - type = RANGE_ACPI; -+ } else if(memcmp(str,"ACPI Non-volatile Storage\n",26) == 0 ) { -+ type = RANGE_ACPI_NVS; - } else { - continue; - } -@@ -645,7 +647,8 @@ - /* Inform second kernel about the presence of ACPI tables. */ - for (i = 0; i < CRASH_MAX_MEMORY_RANGES; i++) { - unsigned long start, end; -- if (mem_range[i].type != RANGE_ACPI) -+ if ( !( mem_range[i].type == RANGE_ACPI -+ || mem_range[i].type == RANGE_ACPI_NVS) ) - continue; - start = mem_range[i].start; - end = mem_range[i].end; diff --git a/kexec-tools-2.0.0-makedumpfile-manpage.patch b/kexec-tools-2.0.0-makedumpfile-manpage.patch deleted file mode 100644 index f26b5b1..0000000 --- a/kexec-tools-2.0.0-makedumpfile-manpage.patch +++ /dev/null @@ -1,19 +0,0 @@ -diff -up kexec-tools-2.0.0/makedumpfile/makedumpfile.8.orig kexec-tools-2.0.0/makedumpfile/makedumpfile.8 ---- kexec-tools-2.0.0/makedumpfile/makedumpfile.8.orig 2008-06-05 01:31:22.000000000 -0400 -+++ kexec-tools-2.0.0/makedumpfile/makedumpfile.8 2008-12-01 11:06:41.000000000 -0500 -@@ -73,6 +73,15 @@ data in the flattened format needs to be - .SH OPTIONS - - .TP -+\fB\-b\fR -+Specify cache block order. -+.br -+makedumpfile attempts to accelerate dumping by caching disk access to ram, in an -+effort to consolidate writes. The size of the application cached used for this -+purpose is controlled by this option. It specifys that 2^b pages should be used -+for the cache. -+ -+.TP - \fB\-c\fR - Compress dump data by each page. - .br diff --git a/kexec-tools.spec b/kexec-tools.spec index eff383f..390b5f2 100644 --- a/kexec-tools.spec +++ b/kexec-tools.spec @@ -1,6 +1,6 @@ Name: kexec-tools Version: 2.0.0 -Release: 12%{?dist} +Release: 13%{?dist} License: GPLv2 Group: Applications/System Summary: The kexec/kdump userspace component. @@ -13,7 +13,7 @@ Source5: kdump.sysconfig.ppc64 Source6: kdump.sysconfig.ia64 Source7: mkdumprd Source8: kdump.conf -Source9: makedumpfile-1.2.6.tar.gz +Source9: makedumpfile-1.3.3.tar.gz Source10: kexec-kdump-howto.txt Source11: firstboot_kdump.py Source12: mkdumprd.8 @@ -59,9 +59,7 @@ Obsoletes: diskdumputils netdump # # Patches 601 onward are generic patches # -Patch603: kexec-tools-2.0.0-disable-kexec-test.patch -Patch605: kexec-tools-1.102pre-x86-phys_base.patch -Patch606: kexec-tools-2.0.0-makedumpfile-manpage.patch +Patch601: kexec-tools-2.0.0-disable-kexec-test.patch %description kexec-tools provides /sbin/kexec binary that facilitates a new @@ -76,9 +74,7 @@ component of the kernel's kexec feature. mkdir -p -m755 kcp tar -z -x -v -f %{SOURCE9} -%patch603 -p1 -%patch605 -p1 -%patch606 -p1 +%patch601 -p1 tar -z -x -v -f %{SOURCE13} @@ -106,7 +102,7 @@ rm -f kexec-tools.spec.in cp %{SOURCE10} . make %ifarch %{ix86} x86_64 ia64 ppc64 -make -C makedumpfile +make -C makedumpfile-1.3.3 %endif make -C kexec-tools-po @@ -135,7 +131,7 @@ install -m 644 %{SOURCE12} $RPM_BUILD_ROOT%{_mandir}/man8/mkdumprd.8 install -m 644 %{SOURCE14} $RPM_BUILD_ROOT%{_sysconfdir}/udev/rules.d/98-kexec.rules %ifarch %{ix86} x86_64 ia64 ppc64 -install -m 755 makedumpfile/makedumpfile $RPM_BUILD_ROOT/sbin/makedumpfile +install -m 755 makedumpfile-1.3.3/makedumpfile $RPM_BUILD_ROOT/sbin/makedumpfile %endif make -C kexec-tools-po install DESTDIR=$RPM_BUILD_ROOT %find_lang %{name} @@ -243,6 +239,9 @@ done %changelog +* Fri May 08 2009 Neil Horman - 2.0.0-13 +- Update makedumpfile to v 1.3.3 (bz 499849) + * Tue Apr 07 2009 Neil Horman - 2.0.0-12 - Simplifed rootfs mounting code in mkdumprd (bz 494416) diff --git a/sources b/sources index 5da3c36..c01ce08 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -9b8434ea5fdd546f24fde82bd2ce59c3 makedumpfile-1.2.6.tar.gz d9f2ecd3c3307905f24130a25816e6cc kexec-tools-2.0.0.tar.bz2 3e802d638dce0080b910f15908c04a24 kexec-tools-po.tar.gz +190f8878aa7e7b63a96fde5d59538eec makedumpfile-1.3.3.tar.gz