rpms/kexec-tools/devel kexec-tools-1.102pre-bzimage-options.patch, NONE, 1.1 kexec-tools-1.102pre-disable-kexec-test.patch, NONE, 1.1 kexec-tools-1.102pre-elf-core-type.patch, NONE, 1.1 kexec-tools-1.102pre-elf-format.patch, NONE, 1.1 kexec-tools-1.102pre-makedumpfile-xen-syms.patch, NONE, 1.1 kexec-tools-1.102pre-ppc-fixup.patch, NONE, 1.1 kexec-tools-1.102pre-ppc64_rmo_top.patch, NONE, 1.1 kexec-tools-1.102pre-x86-add_buffer_retry.patch, NONE, 1.1 kexec-tools.spec, 1.98, 1.99

Neil Horman (nhorman) fedora-extras-commits at redhat.com
Mon Aug 27 19:43:19 UTC 2007


Author: nhorman

Update of /cvs/extras/rpms/kexec-tools/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv31952

Modified Files:
	kexec-tools.spec 
Added Files:
	kexec-tools-1.102pre-bzimage-options.patch 
	kexec-tools-1.102pre-disable-kexec-test.patch 
	kexec-tools-1.102pre-elf-core-type.patch 
	kexec-tools-1.102pre-elf-format.patch 
	kexec-tools-1.102pre-makedumpfile-xen-syms.patch 
	kexec-tools-1.102pre-ppc-fixup.patch 
	kexec-tools-1.102pre-ppc64_rmo_top.patch 
	kexec-tools-1.102pre-x86-add_buffer_retry.patch 
Log Message:
Related: bz 257201

kexec-tools-1.102pre-bzimage-options.patch:

--- NEW FILE kexec-tools-1.102pre-bzimage-options.patch ---
--- 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;

kexec-tools-1.102pre-disable-kexec-test.patch:

--- NEW FILE kexec-tools-1.102pre-disable-kexec-test.patch ---
--- 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)

kexec-tools-1.102pre-elf-core-type.patch:

--- NEW FILE kexec-tools-1.102pre-elf-core-type.patch ---
--- 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)

kexec-tools-1.102pre-elf-format.patch:

--- NEW FILE kexec-tools-1.102pre-elf-format.patch ---
--- 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;

kexec-tools-1.102pre-makedumpfile-xen-syms.patch:

--- NEW FILE kexec-tools-1.102pre-makedumpfile-xen-syms.patch ---
--- 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) {

kexec-tools-1.102pre-ppc-fixup.patch:

--- NEW FILE kexec-tools-1.102pre-ppc-fixup.patch ---
--- 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;

kexec-tools-1.102pre-ppc64_rmo_top.patch:

--- NEW FILE kexec-tools-1.102pre-ppc64_rmo_top.patch ---
--- 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);

kexec-tools-1.102pre-x86-add_buffer_retry.patch:

--- NEW FILE kexec-tools-1.102pre-x86-add_buffer_retry.patch ---
--- 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;i<KEXEC_MAX_SEGMENTS;i++) {
+		if ((memmap_p[i].start == 0) &&
+		    (memmap_p[i].end == 0))
+			break;
+	}
+	elfcorehdr = add_buffer(info, tmp, sz, 16*1024, align, min_base, 
+				memmap_p[i-1].end, -1);
 	dfprintf(stdout, "Created elf header segment at 0x%lx\n", elfcorehdr);
 	if (delete_memmap(memmap_p, elfcorehdr, sz) < 0)
 		return -1;
--- kexec-tools-testing-20070330/kexec/kexec.c.orig	2007-03-30 00:34:36.000000000 -0400
+++ kexec-tools-testing-20070330/kexec/kexec.c	2007-08-27 15:40:22.000000000 -0400
@@ -336,6 +336,7 @@
 	unsigned long base;
 	int result;
 	int pagesize;
+	int i;
 
 	result = sort_segments(info);
 	if (result < 0) {
@@ -345,11 +346,22 @@
 	/* Round memsz up to a multiple of pagesize */
 	pagesize = getpagesize();
 	memsz = (memsz + (pagesize - 1)) & ~(pagesize - 1);
-
+retry:
 	base = locate_hole(info, memsz, buf_align, buf_min, buf_max, buf_end);
 	if (base == ULONG_MAX) {
 		die("locate_hole failed\n");
 	}
+
+	for (i = 0; i < info->nr_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;


Index: kexec-tools.spec
===================================================================
RCS file: /cvs/extras/rpms/kexec-tools/devel/kexec-tools.spec,v
retrieving revision 1.98
retrieving revision 1.99
diff -u -r1.98 -r1.99
--- kexec-tools.spec	27 Aug 2007 19:00:52 -0000	1.98
+++ kexec-tools.spec	27 Aug 2007 19:42:46 -0000	1.99
@@ -31,8 +31,8 @@
 # Patches 0 through 100 are meant for x86 kexec-tools enablement
 #
 Patch1: kexec-tools-1.101-kdump.patch
-Patch2: kexec-tools-1.101-elf-core-type.patch
-Patch3: kexec-tools-1.101-bzimage-options.patch
+Patch2: kexec-tools-1.102pre-elf-core-type.patch
+Patch3: kexec-tools-1.102pre-bzimage-options.patch
 Patch4: kexec-tools-1.101-relocatable-bzimage.patch
 
 #
@@ -64,7 +64,7 @@
 Patch304: kexec-tools-1.101-ppc64-platform-fix.patch
 Patch305: kexec-tools-1.101-ppc64-64k-pages.patch
 Patch306: kexec-tools-1.101-ppc64-memory_regions.patch
-Patch307: kexec-tools-1.101-ppc64_rmo_top.patch
+Patch307: kexec-tools-1.102pre-ppc64_rmo_top.patch
 Patch308: kexec-tools-1.101-ppc-boots-ppc64.patch
 Patch309: kexec-tools-1.101-ppc64-align-dtstruct.patch
 Patch310: kexec-tools-1.101-ppc64-bootargs-align.patch
@@ -77,7 +77,7 @@
 #
 # Patches 501 through 600 are meant for ppc kexec-tools enablement
 #
-Patch501: kexec-tools-1.101-ppc-fixup.patch
+Patch501: kexec-tools-1.102pre-ppc-fixup.patch
 
 #
 # Patches 601 onward are generic patches
@@ -85,11 +85,12 @@
 Patch601: kexec-tools-1.101-Makefile.patch
 Patch602: kexec-tools-1.101-et-dyn.patch
 Patch603: kexec-tools-1.101-page_h.patch
-Patch604: kexec-tools-1.101-elf-format.patch
+Patch604: kexec-tools-1.102pre-elf-format.patch
 Patch605: kexec-tools-1.101-ifdown.patch
 Patch606: kexec-tools-1.101-reloc-update.patch
-Patch607: kexec-tools-1.101-x86-add_buffer_retry.patch
-Patch608: kexec-tools-1.101-makedumpfile-xen-syms.patch
+Patch607: kexec-tools-1.102pre-x86-add_buffer_retry.patch
+Patch608: kexec-tools-1.102pre-makedumpfile-xen-syms.patch
+Patch609: kexec-tools-1.102pre-disable-kexec-test.patch
 
 %description
 kexec-tools provides /sbin/kexec binary that facilitates a new
@@ -144,6 +145,7 @@
 #%patch606 -p1
 %patch607 -p1
 %patch608 -p1 
+%patch609 -p1
 
 tar -z -x -v -f %{SOURCE13}
 
@@ -246,9 +248,6 @@
 %config(noreplace,missingok) %{_sysconfdir}/kdump.conf
 %config %{_sysconfdir}/rc.d/init.d/kdump
 %dir %{_localstatedir}/crash
-%ifarch %{ix86} x86_64
-%{_libdir}/kexec-tools
-%endif
 %{_mandir}/man8/*
 %doc News
 %doc COPYING




More information about the fedora-extras-commits mailing list