Mailing List Archive

linux-i386: Fix CONFIG_X86_NO_TSS and CONFIG_X86_SYSENTER.
# HG changeset patch
# User cl349@firebug.cl.cam.ac.uk
# Node ID a05e56904e7e5e86aae5a2e022621caaf7b3a6f5
# Parent 687165bc9670d2230f39d4790769f8d0ad87115f
linux-i386: Fix CONFIG_X86_NO_TSS and CONFIG_X86_SYSENTER.

Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>

diff -r 687165bc9670 -r a05e56904e7e linux-2.6-xen-sparse/arch/i386/kernel/cpu/common-xen.c
--- a/linux-2.6-xen-sparse/arch/i386/kernel/cpu/common-xen.c Mon Feb 20 20:26:24 2006
+++ b/linux-2.6-xen-sparse/arch/i386/kernel/cpu/common-xen.c Mon Feb 20 23:01:50 2006
@@ -595,7 +595,7 @@
void __cpuinit cpu_init(void)
{
int cpu = smp_processor_id();
-#ifdef CONFIG_DOUBLEFAULT
+#ifndef CONFIG_X86_NO_TSS
struct tss_struct * t = &per_cpu(init_tss, cpu);
#endif
struct thread_struct *thread = &current->thread;
diff -r 687165bc9670 -r a05e56904e7e linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/processor.h
--- a/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/processor.h Mon Feb 20 20:26:24 2006
+++ b/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/processor.h Mon Feb 20 23:01:50 2006
@@ -503,15 +503,19 @@
.io_bitmap = { [ 0 ... IO_BITMAP_LONGS] = ~0 }, \
}

-static inline void load_esp0(struct tss_struct *tss, struct thread_struct *thread)
+static inline void __load_esp0(struct tss_struct *tss, struct thread_struct *thread)
{
tss->esp0 = thread->esp0;
+#ifdef CONFIG_X86_SYSENTER
/* This can only happen when SEP is enabled, no need to test "SEP"arately */
if (unlikely(tss->ss1 != thread->sysenter_cs)) {
tss->ss1 = thread->sysenter_cs;
wrmsr(MSR_IA32_SYSENTER_CS, thread->sysenter_cs, 0);
}
-}
+#endif
+}
+#define load_esp0(tss, thread) \
+ __load_esp0(tss, thread)
#else
#define load_esp0(tss, thread) \
HYPERVISOR_stack_switch(__KERNEL_DS, (thread)->esp0)

_______________________________________________
Xen-changelog mailing list
Xen-changelog@lists.xensource.com
http://lists.xensource.com/xen-changelog