[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] [LINUX] kexec: Backport fix for overlapping program headers in x86_64 linker script.
# HG changeset patch # User Ian Campbell <ian.campbell@xxxxxxxxxxxxx> # Node ID aa08fbbf1243aa2138f56c9d7145c4fb9a40765f # Parent a1a04c48da6cd4b1b9450675d5105901292c9dd6 [LINUX] kexec: Backport fix for overlapping program headers in x86_64 linker script. This allows a native kernel built from the xen tree to be used as a crash kernel on x86_64. Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxxxxx> --- patches/linux-2.6.16.33/git-dbaab49f92ff6ae6255762a948375e4036cbdbd2.patch | 44 ++++++++++ patches/linux-2.6.16.33/series | 1 2 files changed, 45 insertions(+) diff -r a1a04c48da6c -r aa08fbbf1243 patches/linux-2.6.16.33/series --- a/patches/linux-2.6.16.33/series Thu Nov 30 12:38:51 2006 +0000 +++ b/patches/linux-2.6.16.33/series Thu Nov 30 12:38:51 2006 +0000 @@ -31,6 +31,7 @@ xenoprof-generic.patch xenoprof-generic.patch x86-put-note-sections-into-a-pt_note-segment-in-vmlinux.patch x86_64-put-note-sections-into-a-pt_note-segment-in-vmlinux.patch +git-dbaab49f92ff6ae6255762a948375e4036cbdbd2.patch x86-elfnote-as-preprocessor-macro.patch vsnprintf.patch kasprintf.patch diff -r a1a04c48da6c -r aa08fbbf1243 patches/linux-2.6.16.33/git-dbaab49f92ff6ae6255762a948375e4036cbdbd2.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/linux-2.6.16.33/git-dbaab49f92ff6ae6255762a948375e4036cbdbd2.patch Thu Nov 30 12:38:51 2006 +0000 @@ -0,0 +1,47 @@ +commit dbaab49f92ff6ae6255762a948375e4036cbdbd2 +Author: Vivek Goyal <vgoyal@xxxxxxxxxx> +Date: Sat Oct 21 18:37:03 2006 +0200 + + [PATCH] x86-64: Overlapping program headers in physical addr space fix + + o A recent change to vmlinux.ld.S file broke kexec as now resulting vmlinux + program headers are overlapping in physical address space. + + o Now all the vsyscall related sections are placed after data and after + that mostly init data sections are placed. To avoid physical overlap + among phdrs, there are three possible solutions. + - Place vsyscall sections also in data phdrs instead of user + - move vsyscal sections after init data in bss. + - create another phdrs say data.init and move all the sections + after vsyscall into this new phdr. + + o This patch implements the third solution. + + Signed-off-by: Vivek Goyal <vgoyal@xxxxxxxxxx> + Signed-off-by: Andi Kleen <ak@xxxxxxx> + Cc: Magnus Damm <magnus@xxxxxxxxxxxxx> + Cc: Andi Kleen <ak@xxxxxxx> + Cc: "Eric W. Biederman" <ebiederm@xxxxxxxxxxxx> + Signed-off-by: Andrew Morton <akpm@xxxxxxxx> + +diff --git a/arch/x86_64/kernel/vmlinux.lds.S b/arch/x86_64/kernel/vmlinux.lds.S +index b9df2ab..1283614 100644 +--- a/arch/x86_64/kernel/vmlinux.lds.S ++++ b/arch/x86_64/kernel/vmlinux.lds.S +@@ -17,6 +17,7 @@ PHDRS { + text PT_LOAD FLAGS(5); /* R_E */ + data PT_LOAD FLAGS(7); /* RWE */ + user PT_LOAD FLAGS(7); /* RWE */ ++ data.init PT_LOAD FLAGS(7); /* RWE */ + note PT_NOTE FLAGS(4); /* R__ */ + } + SECTIONS +@@ -131,7 +132,7 @@ SECTIONS + . = ALIGN(8192); /* init_task */ + .data.init_task : AT(ADDR(.data.init_task) - LOAD_OFFSET) { + *(.data.init_task) +- } :data ++ }:data.init + + . = ALIGN(4096); + .data.page_aligned : AT(ADDR(.data.page_aligned) - LOAD_OFFSET) { _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |