diff options
author | Sam Ravnborg <sam@ravnborg.org> | 2008-01-30 07:33:25 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-01-30 07:33:25 -0500 |
commit | 08b6d290f977d8145804fd2b9bc2c331f2484f8e (patch) | |
tree | 75773eaba4542967425dbff236f731bd92bb3fa5 /arch/x86/xen/xen-head.S | |
parent | e68decb52104388ed6c6218be926e10e6cde2814 (diff) |
xen: fix section usage in xen-head.S and setup.c
additional section for .init.text appending a number.
A side effect of this was a section mismatch warning because modpost did
not recognize a .init.text section named .init.text.1: WARNING:
vmlinux.o(.text.head+0x247): Section mismatch: reference to
.init.text.1:start_kernel (between 'is386' and 'check_x87')
Fix this by hardcoding the "ax" in the pushsection. Thanks to Torlaf for
reporting this.
Alan Modra provided the hint that made me able to locate the root cause of
this warning. And Mike Frysinger told me how to properly fix it using
__INIT/__FINIT.
Fix following Section mismatch warning in addition:
WARNING: vmlinux.o(.text+0x14c8): Section mismatch: reference to .init.data:vsyscall_int80_start (between 'fiddle_vdso' and 'xen_setup_features')
fiddle_vdso was only used from a __init function - so declare it __init.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Jeremy Fitzhardinge <jeremy@xensource.com>
Cc: Chris Wright <chrisw@sous-sol.org>
Cc: WANG Cong <xiyou.wangcong@gmail.com>
Cc: Toralf Förster <toralf.foerster@gmx.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/x86/xen/xen-head.S')
-rw-r--r-- | arch/x86/xen/xen-head.S | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/x86/xen/xen-head.S b/arch/x86/xen/xen-head.S index f8d6937db2ec..288d587ce73c 100644 --- a/arch/x86/xen/xen-head.S +++ b/arch/x86/xen/xen-head.S | |||
@@ -4,16 +4,18 @@ | |||
4 | #ifdef CONFIG_XEN | 4 | #ifdef CONFIG_XEN |
5 | 5 | ||
6 | #include <linux/elfnote.h> | 6 | #include <linux/elfnote.h> |
7 | #include <linux/init.h> | ||
7 | #include <asm/boot.h> | 8 | #include <asm/boot.h> |
8 | #include <xen/interface/elfnote.h> | 9 | #include <xen/interface/elfnote.h> |
9 | 10 | ||
10 | .pushsection .init.text | 11 | __INIT |
11 | ENTRY(startup_xen) | 12 | ENTRY(startup_xen) |
12 | movl %esi,xen_start_info | 13 | movl %esi,xen_start_info |
13 | cld | 14 | cld |
14 | movl $(init_thread_union+THREAD_SIZE),%esp | 15 | movl $(init_thread_union+THREAD_SIZE),%esp |
15 | jmp xen_start_kernel | 16 | jmp xen_start_kernel |
16 | .popsection | 17 | |
18 | __FINIT | ||
17 | 19 | ||
18 | .pushsection .bss.page_aligned | 20 | .pushsection .bss.page_aligned |
19 | .align PAGE_SIZE_asm | 21 | .align PAGE_SIZE_asm |