
From: Pavel Machek <pavel@suse.cz>

fix_processor_context was calling functions marked __init on x86-64;
bad idea. 

Thanks to Rafael for keeping notifying me about this bug.

Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/arch/x86_64/ia32/syscall32.c |    3 ++-
 25-akpm/arch/x86_64/kernel/setup64.c |    3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff -puN arch/x86_64/ia32/syscall32.c~fix-random-crashes-in-x86-64-swsusp arch/x86_64/ia32/syscall32.c
--- 25/arch/x86_64/ia32/syscall32.c~fix-random-crashes-in-x86-64-swsusp	Wed Oct  6 16:30:07 2004
+++ 25-akpm/arch/x86_64/ia32/syscall32.c	Wed Oct  6 16:30:07 2004
@@ -88,7 +88,8 @@ static int __init init_syscall32(void)
 	
 __initcall(init_syscall32); 
 
-void __init syscall32_cpu_init(void)
+/* May not be __init: called during resume */
+void syscall32_cpu_init(void)
 {
 	if (use_sysenter < 0)
  		use_sysenter = (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL);
diff -puN arch/x86_64/kernel/setup64.c~fix-random-crashes-in-x86-64-swsusp arch/x86_64/kernel/setup64.c
--- 25/arch/x86_64/kernel/setup64.c~fix-random-crashes-in-x86-64-swsusp	Wed Oct  6 16:30:07 2004
+++ 25-akpm/arch/x86_64/kernel/setup64.c	Wed Oct  6 16:30:07 2004
@@ -195,7 +195,8 @@ void pda_init(int cpu)
 char boot_exception_stacks[N_EXCEPTION_STACKS * EXCEPTION_STKSZ] 
 __attribute__((section(".bss.page_aligned")));
 
-void __init syscall_init(void)
+/* May not be marked __init: used by software suspend */
+void syscall_init(void)
 {
 	/* 
 	 * LSTAR and STAR live in a bit strange symbiosis.
_
