ia64/xen-unstable

changeset 12680:aa08fbbf1243

[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>
author Ian Campbell <ian.campbell@xensource.com>
date Thu Nov 30 12:38:51 2006 +0000 (2006-11-30)
parents a1a04c48da6c
children b19922790440
files patches/linux-2.6.16.33/git-dbaab49f92ff6ae6255762a948375e4036cbdbd2.patch patches/linux-2.6.16.33/series
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/patches/linux-2.6.16.33/git-dbaab49f92ff6ae6255762a948375e4036cbdbd2.patch	Thu Nov 30 12:38:51 2006 +0000
     1.3 @@ -0,0 +1,47 @@
     1.4 +commit dbaab49f92ff6ae6255762a948375e4036cbdbd2
     1.5 +Author: Vivek Goyal <vgoyal@in.ibm.com>
     1.6 +Date:   Sat Oct 21 18:37:03 2006 +0200
     1.7 +
     1.8 +    [PATCH] x86-64: Overlapping program headers in physical addr space fix
     1.9 +    
    1.10 +    o A recent change to vmlinux.ld.S file broke kexec as now resulting vmlinux
    1.11 +      program headers are overlapping in physical address space.
    1.12 +    
    1.13 +    o Now all the vsyscall related sections are placed after data and after
    1.14 +      that mostly init data sections are placed. To avoid physical overlap
    1.15 +      among phdrs, there are three possible solutions.
    1.16 +    	- Place vsyscall sections also in data phdrs instead of user
    1.17 +    	- move vsyscal sections after init data in bss.
    1.18 +    	- create another phdrs say data.init and move all the sections
    1.19 +    	  after vsyscall into this new phdr.
    1.20 +    
    1.21 +    o This patch implements the third solution.
    1.22 +    
    1.23 +    Signed-off-by: Vivek Goyal <vgoyal@in.ibm.com>
    1.24 +    Signed-off-by: Andi Kleen <ak@suse.de>
    1.25 +    Cc: Magnus Damm <magnus@valinux.co.jp>
    1.26 +    Cc: Andi Kleen <ak@suse.de>
    1.27 +    Cc: "Eric W. Biederman" <ebiederm@xmission.com>
    1.28 +    Signed-off-by: Andrew Morton <akpm@osdl.org>
    1.29 +
    1.30 +diff --git a/arch/x86_64/kernel/vmlinux.lds.S b/arch/x86_64/kernel/vmlinux.lds.S
    1.31 +index b9df2ab..1283614 100644
    1.32 +--- a/arch/x86_64/kernel/vmlinux.lds.S
    1.33 ++++ b/arch/x86_64/kernel/vmlinux.lds.S
    1.34 +@@ -17,6 +17,7 @@ PHDRS {
    1.35 + 	text PT_LOAD FLAGS(5);	/* R_E */
    1.36 + 	data PT_LOAD FLAGS(7);	/* RWE */
    1.37 + 	user PT_LOAD FLAGS(7);	/* RWE */
    1.38 ++	data.init PT_LOAD FLAGS(7);	/* RWE */
    1.39 + 	note PT_NOTE FLAGS(4);	/* R__ */
    1.40 + }
    1.41 + SECTIONS
    1.42 +@@ -131,7 +132,7 @@ SECTIONS
    1.43 +   . = ALIGN(8192);		/* init_task */
    1.44 +   .data.init_task : AT(ADDR(.data.init_task) - LOAD_OFFSET) {
    1.45 + 	*(.data.init_task)
    1.46 +-  } :data
    1.47 ++  }:data.init
    1.48 + 
    1.49 +   . = ALIGN(4096);
    1.50 +   .data.page_aligned : AT(ADDR(.data.page_aligned) - LOAD_OFFSET) {
     2.1 --- a/patches/linux-2.6.16.33/series	Thu Nov 30 12:38:51 2006 +0000
     2.2 +++ b/patches/linux-2.6.16.33/series	Thu Nov 30 12:38:51 2006 +0000
     2.3 @@ -31,6 +31,7 @@ xen-hotplug.patch
     2.4  xenoprof-generic.patch
     2.5  x86-put-note-sections-into-a-pt_note-segment-in-vmlinux.patch
     2.6  x86_64-put-note-sections-into-a-pt_note-segment-in-vmlinux.patch
     2.7 +git-dbaab49f92ff6ae6255762a948375e4036cbdbd2.patch
     2.8  x86-elfnote-as-preprocessor-macro.patch
     2.9  vsnprintf.patch
    2.10  kasprintf.patch