Hello community,
here is the log from the commit of package kexec-tools
checked in at Wed Feb 14 10:30:15 CET 2007.
--------
--- kexec-tools/kexec-tools.changes 2007-02-12 12:42:01.000000000 +0100
+++ /mounts/work_src_done/STABLE/kexec-tools/kexec-tools.changes 2007-02-13 18:54:05.895385000 +0100
@@ -1,0 +2,7 @@
+Tue Feb 13 18:38:52 CET 2007 - bwalle@suse.de
+
+- align the both start and end address of the ELF core header
+ to EFI_PAGE_SIZE (4096) to fix wrong EFI memory maps
+ (#214865)
+
+-------------------------------------------------------------------
New:
----
kexec-tools-add-alignment-parameter.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kexec-tools.spec ++++++
--- /var/tmp/diff_new_pack.u27733/_old 2007-02-14 10:29:34.000000000 +0100
+++ /var/tmp/diff_new_pack.u27733/_new 2007-02-14 10:29:34.000000000 +0100
@@ -19,7 +19,7 @@
Autoreqprov: on
Summary: Tools for fast kernel loading
Version: 1.101
-Release: 75
+Release: 77
Source: %{name}-%{package_version}.tar.bz2
Source1: kdump
Source2: sysconfig.kdump
@@ -29,6 +29,7 @@
Source6: kdump-helper-%{helperversion}.tar.bz2
Patch1: kexec-longer-cmdline.diff
Patch2: kexec-help.diff
+Patch3: kexec-tools-add-alignment-parameter.diff
URL: http://www.xmission.com/~ebiederm/files/kexec/
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: libelf
@@ -54,6 +55,7 @@
%setup -q -n kexec-tools -b 6
%patch1 -p1
%patch2
+%patch3 -p1
%{?suse_update_config -f}
cp %{SOURCE5} .
@@ -123,6 +125,10 @@
%{_sbindir}/kdump-helper
%changelog -n kexec-tools
+* Tue Feb 13 2007 - bwalle@suse.de
+- align the both start and end address of the ELF core header
+ to EFI_PAGE_SIZE (4096) to fix wrong EFI memory maps
+ (#214865)
* Mon Feb 12 2007 - bwalle@suse.de
- fixed copying, blocksize was wrong (#243058)
* Sat Feb 10 2007 - schwab@suse.de
++++++ kexec-tools-add-alignment-parameter.diff ++++++
Subject: kexec-tools: Add alignment parameter to crash_create_XXX_headers
From: Simon Horman
To: fastboot@lists.osdl.org, Linux-IA64
Cc: Cc: Bernhard Walle ,
Magnus Damm ,
Zou, Nanhai
crash_create_XXX_headers assumes that all arhitectures need an alignment of
1024bytes. But on ia64 at least this is not true. This patch adds an
alignment parameter to crash_create_XXX_headers, and calls passes
a value of 1024 for all architectures except ia64, where EFI_PAGE_SIZE (4096)
is passed.
If there are problems with alignment on other architectures hopefully
this facility will work for them too.
Cc: Bernhard Walle
Cc: Magnus Damm
Cc: Zou, Nanhai
Signed-off-by: Simon Horman
kexec/arch/i386/crashdump-x86.c | 4 ++--
kexec/arch/ia64/crashdump-ia64.c | 5 +++--
kexec/arch/ppc64/crashdump-ppc64.c | 4 ++--
kexec/arch/x86_64/crashdump-x86_64.c | 2 +-
kexec/crashdump-elf.c | 11 ++---------
kexec/crashdump.h | 6 ++++--
6 files changed, 14 insertions(+), 18 deletions(-)
Index: kexec-tools-bw/kexec/arch/i386/crashdump-x86.c
===================================================================
--- kexec-tools-bw.orig/kexec/arch/i386/crashdump-x86.c 2007-02-13 17:39:18.000000000 +0900
+++ kexec-tools-bw/kexec/arch/i386/crashdump-x86.c 2007-02-13 17:39:26.000000000 +0900
@@ -524,13 +524,13 @@
if (arch_options.core_header_type == CORE_TYPE_ELF64) {
if (crash_create_elf64_headers(info, &elf_info64,
crash_memory_range, nr_ranges,
- &tmp, &sz) < 0)
+ &tmp, &sz, 1024) < 0)
return -1;
}
else {
if (crash_create_elf32_headers(info, &elf_info32,
crash_memory_range, nr_ranges,
- &tmp, &sz) < 0)
+ &tmp, &sz, 1024) < 0)
return -1;
}
Index: kexec-tools-bw/kexec/arch/ia64/crashdump-ia64.c
===================================================================
--- kexec-tools-bw.orig/kexec/arch/ia64/crashdump-ia64.c 2007-02-13 17:39:18.000000000 +0900
+++ kexec-tools-bw/kexec/arch/ia64/crashdump-ia64.c 2007-02-13 18:09:44.000000000 +0900
@@ -232,13 +232,14 @@
if (crash_create_elf64_headers(info, &elf_info,
crash_memory_range,
nr_ranges,
- &tmp, &sz) < 0)
+ &tmp, &sz,
+ 4096) < 0)
return -1;
elfcorehdr = add_buffer(info, tmp, sz, sz, EFI_PAGE_SIZE, min_base,
max_addr, -1);
loaded_segments[loaded_segments_num].start = elfcorehdr;
- loaded_segments[loaded_segments_num].end = elfcorehdr + size;
+ loaded_segments[loaded_segments_num].end = elfcorehdr + sz;
loaded_segments[loaded_segments_num].reserved = 1;
loaded_segments_num++;
cmdline_add_elfcorehdr(cmdline, elfcorehdr);
Index: kexec-tools-bw/kexec/arch/ppc64/crashdump-ppc64.c
===================================================================
--- kexec-tools-bw.orig/kexec/arch/ppc64/crashdump-ppc64.c 2007-02-13 17:39:18.000000000 +0900
+++ kexec-tools-bw/kexec/arch/ppc64/crashdump-ppc64.c 2007-02-13 17:39:26.000000000 +0900
@@ -344,13 +344,13 @@
if (arch_options.core_header_type == CORE_TYPE_ELF64) {
if (crash_create_elf64_headers(info, &elf_info64,
crash_memory_range, nr_ranges,
- &tmp, &sz) < 0)
+ &tmp, &sz, 1024) < 0)
return -1;
}
else {
if (crash_create_elf32_headers(info, &elf_info32,
crash_memory_range, nr_ranges,
- &tmp, &sz) < 0)
+ &tmp, &sz, 1024) < 0)
return -1;
}
Index: kexec-tools-bw/kexec/arch/x86_64/crashdump-x86_64.c
===================================================================
--- kexec-tools-bw.orig/kexec/arch/x86_64/crashdump-x86_64.c 2007-02-13 17:39:18.000000000 +0900
+++ kexec-tools-bw/kexec/arch/x86_64/crashdump-x86_64.c 2007-02-13 17:39:26.000000000 +0900
@@ -607,7 +607,7 @@
/* Create elf header segment and store crash image data. */
if (crash_create_elf64_headers(info, &elf_info,
crash_memory_range, nr_ranges,
- &tmp, &sz) < 0)
+ &tmp, &sz, 1024) < 0)
return -1;
/* Hack: With some ld versions (GNU ld version 2.14.90.0.4 20030523),
Index: kexec-tools-bw/kexec/crashdump-elf.c
===================================================================
--- kexec-tools-bw.orig/kexec/crashdump-elf.c 2007-02-13 17:39:18.000000000 +0900
+++ kexec-tools-bw/kexec/crashdump-elf.c 2007-02-13 17:39:26.000000000 +0900
@@ -27,11 +27,11 @@
int FUNC(struct kexec_info *info,
struct crash_elf_info *elf_info,
struct memory_range *range, int ranges,
- void **buf, unsigned long *size)
+ void **buf, unsigned long *size, unsigned long align)
{
EHDR *elf;
PHDR *phdr;
- int i, sz, align;
+ int i, sz;
char *bufp;
long int nr_cpus = 0;
uint64_t notes_addr, notes_len;
@@ -72,13 +72,6 @@
sz += sizeof(PHDR);
}
- /*
- * The kernel command line option memmap= requires 1k granularity,
- * therefore we align the size to 1024 here.
- */
-
- align = 1024;
-
sz += align - 1;
sz &= ~(align - 1);
Index: kexec-tools-bw/kexec/crashdump.h
===================================================================
--- kexec-tools-bw.orig/kexec/crashdump.h 2007-02-13 17:39:18.000000000 +0900
+++ kexec-tools-bw/kexec/crashdump.h 2007-02-13 17:39:26.000000000 +0900
@@ -27,12 +27,14 @@
int crash_create_elf32_headers(struct kexec_info *info,
struct crash_elf_info *elf_info,
struct memory_range *range, int ranges,
- void **buf, unsigned long *size);
+ void **buf, unsigned long *size,
+ unsigned long align);
int crash_create_elf64_headers(struct kexec_info *info,
struct crash_elf_info *elf_info,
struct memory_range *range, int ranges,
- void **buf, unsigned long *size);
+ void **buf, unsigned long *size,
+ unsigned long align);
int xen_present(void);
int xen_get_nr_phys_cpus(void);
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org