diff options
author | Ian Campbell <ian.campbell@xensource.com> | 2006-11-30 12:38:51 +0000 |
---|---|---|
committer | Ian Campbell <ian.campbell@xensource.com> | 2006-11-30 12:38:51 +0000 |
commit | f8d586356a8cd248443f3fb0f01a53530c8e9b0a (patch) | |
tree | 2e8d04d42a5bd70f5860afeb4b9b52855342b621 /patches | |
parent | 6fc8621b96e18503bf92a3b1651f35bf17af41a2 (diff) | |
download | xen-f8d586356a8cd248443f3fb0f01a53530c8e9b0a.tar.gz xen-f8d586356a8cd248443f3fb0f01a53530c8e9b0a.tar.bz2 xen-f8d586356a8cd248443f3fb0f01a53530c8e9b0a.zip |
[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@xensource.com>
Diffstat (limited to 'patches')
-rw-r--r-- | patches/linux-2.6.16.33/git-dbaab49f92ff6ae6255762a948375e4036cbdbd2.patch | 47 | ||||
-rw-r--r-- | patches/linux-2.6.16.33/series | 1 |
2 files changed, 48 insertions, 0 deletions
diff --git a/patches/linux-2.6.16.33/git-dbaab49f92ff6ae6255762a948375e4036cbdbd2.patch b/patches/linux-2.6.16.33/git-dbaab49f92ff6ae6255762a948375e4036cbdbd2.patch new file mode 100644 index 0000000000..199cabd4c9 --- /dev/null +++ b/patches/linux-2.6.16.33/git-dbaab49f92ff6ae6255762a948375e4036cbdbd2.patch @@ -0,0 +1,47 @@ +commit dbaab49f92ff6ae6255762a948375e4036cbdbd2 +Author: Vivek Goyal <vgoyal@in.ibm.com> +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@in.ibm.com> + Signed-off-by: Andi Kleen <ak@suse.de> + Cc: Magnus Damm <magnus@valinux.co.jp> + Cc: Andi Kleen <ak@suse.de> + Cc: "Eric W. Biederman" <ebiederm@xmission.com> + Signed-off-by: Andrew Morton <akpm@osdl.org> + +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) { diff --git a/patches/linux-2.6.16.33/series b/patches/linux-2.6.16.33/series index 81cc316ad8..1f01b4033f 100644 --- a/patches/linux-2.6.16.33/series +++ b/patches/linux-2.6.16.33/series @@ -31,6 +31,7 @@ xen-hotplug.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 |