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

 arch/i386/kernel/sysenter.c  |   10 ++++++++++
 arch/i386/power/cpu.c        |    2 ++
 include/asm-i386/processor.h |    1 +
 include/asm-i386/smp.h       |    1 -
 4 files changed, 13 insertions(+), 1 deletion(-)

diff -puN arch/i386/kernel/sysenter.c~sep-initializing-rework-fix arch/i386/kernel/sysenter.c
--- 25/arch/i386/kernel/sysenter.c~sep-initializing-rework-fix	2005-04-30 12:20:20.370077048 -0700
+++ 25-akpm/arch/i386/kernel/sysenter.c	2005-04-30 12:20:20.375076288 -0700
@@ -65,3 +65,13 @@ int __init sysenter_setup(void)
 
 	return 0;
 }
+
+#ifndef CONFIG_SMP
+static int __init sysenter_sep_setup(void)
+{
+	sysenter_setup();
+	enable_sep_cpu();
+	return 0;
+}
+module_init(sysenter_sep_setup);
+#endif
diff -puN arch/i386/power/cpu.c~sep-initializing-rework-fix arch/i386/power/cpu.c
--- 25/arch/i386/power/cpu.c~sep-initializing-rework-fix	2005-04-30 12:20:20.371076896 -0700
+++ 25-akpm/arch/i386/power/cpu.c	2005-04-30 12:20:35.890717552 -0700
@@ -22,9 +22,11 @@
 #include <linux/device.h>
 #include <linux/suspend.h>
 #include <linux/acpi.h>
+
 #include <asm/uaccess.h>
 #include <asm/acpi.h>
 #include <asm/tlbflush.h>
+#include <asm/processor.h>
 
 static struct saved_context saved_context;
 
diff -puN include/asm-i386/processor.h~sep-initializing-rework-fix include/asm-i386/processor.h
--- 25/include/asm-i386/processor.h~sep-initializing-rework-fix	2005-04-30 12:20:41.633844464 -0700
+++ 25-akpm/include/asm-i386/processor.h	2005-04-30 12:21:04.316396192 -0700
@@ -691,5 +691,6 @@ extern void select_idle_routine(const st
 #define cache_line_size() (boot_cpu_data.x86_cache_alignment)
 
 extern unsigned long boot_option_idle_override;
+extern void enable_sep_cpu(void);
 
 #endif /* __ASM_I386_PROCESSOR_H */
diff -puN include/asm-i386/smp.h~sep-initializing-rework-fix include/asm-i386/smp.h
--- 25/include/asm-i386/smp.h~sep-initializing-rework-fix	2005-04-30 12:20:45.463262304 -0700
+++ 25-akpm/include/asm-i386/smp.h	2005-04-30 12:20:53.140095248 -0700
@@ -38,7 +38,6 @@ extern cpumask_t cpu_sibling_map[];
 extern cpumask_t cpu_core_map[];
 
 extern int sysenter_setup(void);
-extern void enable_sep_cpu(void);
 
 extern void smp_flush_tlb(void);
 extern void smp_message_irq(int cpl, void *dev_id, struct pt_regs *regs);
_