[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] Remove CONFIG_X86_SYSENTER option.



# HG changeset patch
# User Ian.Campbell@xxxxxxxxxxxxx
# Node ID d73eeceeae692cc08d68aece06b42fa7ce60edd7
# Parent  faad84c126e26a5db34469a29e02fa1ae925a268
Remove CONFIG_X86_SYSENTER option.

Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxxxxx>

diff -r faad84c126e2 -r d73eeceeae69 linux-2.6-xen-sparse/arch/i386/Kconfig
--- a/linux-2.6-xen-sparse/arch/i386/Kconfig    Fri Apr 21 17:19:22 2006 +0100
+++ b/linux-2.6-xen-sparse/arch/i386/Kconfig    Fri Apr 21 17:19:26 2006 +0100
@@ -1180,11 +1180,6 @@ config X86_NO_TSS
        depends on X86_XEN
        default y
 
-config X86_SYSENTER
-       bool
-       depends on !X86_NO_TSS
-       default y
-
 config X86_NO_IDT
        bool
        depends on X86_XEN
diff -r faad84c126e2 -r d73eeceeae69 
linux-2.6-xen-sparse/arch/i386/kernel/Makefile
--- a/linux-2.6-xen-sparse/arch/i386/kernel/Makefile    Fri Apr 21 17:19:22 
2006 +0100
+++ b/linux-2.6-xen-sparse/arch/i386/kernel/Makefile    Fri Apr 21 17:19:26 
2006 +0100
@@ -49,14 +49,12 @@ vsyscall_note := vsyscall-note.o
 vsyscall_note := vsyscall-note.o
 endif
 
-VSYSCALL_TYPES-y                       := int80
-VSYSCALL_TYPES-$(CONFIG_X86_SYSENTER)  += sysenter
 # vsyscall.o contains the vsyscall DSO images as __initdata.
 # We must build both images before we can assemble it.
 # Note: kbuild does not track this dependency due to usage of .incbin
-$(obj)/vsyscall.o: $(foreach F,$(VSYSCALL_TYPES-y),$(obj)/vsyscall-$F.so)
-targets += $(foreach F,$(VSYSCALL_TYPES-y),vsyscall-$F.o vsyscall-$F.so)
-targets += $(vsyscall_note) vsyscall.lds
+$(obj)/vsyscall.o: $(obj)/vsyscall-int80.so $(obj)/vsyscall-sysenter.so
+targets += $(foreach F,int80 sysenter,vsyscall-$F.o vsyscall-$F.so)
+targets += vsyscall-note.o vsyscall.lds
 
 # The DSO images are built using a special linker script.
 quiet_cmd_syscall = SYSCALL $@
@@ -83,8 +81,7 @@ extra-y += vsyscall-syms.o
 
 SYSCFLAGS_vsyscall-syms.o = -r
 $(obj)/vsyscall-syms.o: $(src)/vsyscall.lds \
-                       $(foreach F,$(VSYSCALL_TYPES-y),$(obj)/vsyscall-$F.o) \
-                       $(obj)/$(vsyscall_note) FORCE
+                       $(obj)/vsyscall-sysenter.o $(obj)/$(vsyscall_note) FORCE
        $(call if_changed,syscall)
 
 ifdef CONFIG_XEN
diff -r faad84c126e2 -r d73eeceeae69 
linux-2.6-xen-sparse/arch/i386/kernel/asm-offsets.c
--- a/linux-2.6-xen-sparse/arch/i386/kernel/asm-offsets.c       Fri Apr 21 
17:19:22 2006 +0100
+++ b/linux-2.6-xen-sparse/arch/i386/kernel/asm-offsets.c       Fri Apr 21 
17:19:26 2006 +0100
@@ -64,10 +64,13 @@ void foo(void)
        OFFSET(pbe_orig_address, pbe, orig_address);
        OFFSET(pbe_next, pbe, next);
 
-#ifdef CONFIG_X86_SYSENTER
+#ifndef CONFIG_X86_NO_TSS
        /* Offset from the sysenter stack to tss.esp0 */
        DEFINE(TSS_sysenter_esp0, offsetof(struct tss_struct, esp0) -
                 sizeof(struct tss_struct));
+#else
+       /* sysenter stack points directly to esp0 */
+       DEFINE(TSS_sysenter_esp0, 0);
 #endif
 
        DEFINE(PAGE_SIZE_asm, PAGE_SIZE);
diff -r faad84c126e2 -r d73eeceeae69 
linux-2.6-xen-sparse/arch/i386/kernel/entry-xen.S
--- a/linux-2.6-xen-sparse/arch/i386/kernel/entry-xen.S Fri Apr 21 17:19:22 
2006 +0100
+++ b/linux-2.6-xen-sparse/arch/i386/kernel/entry-xen.S Fri Apr 21 17:19:26 
2006 +0100
@@ -202,7 +202,6 @@ need_resched:
        jmp need_resched
 #endif
 
-#ifdef CONFIG_X86_SYSENTER
 /* SYSENTER_RETURN points to after the "sysenter" instruction in
    the vsyscall page.  See vsyscall-sysentry.S, which defines the symbol.  */
 
@@ -250,7 +249,6 @@ 1:  movl (%ebp),%ebp
        xorl %ebp,%ebp
        sti
        sysexit
-#endif /* CONFIG_X86_SYSENTER */
 
 
        # system call handler stub
@@ -683,7 +681,7 @@ device_available_emulate:
        call math_state_restore
        jmp ret_from_exception
 
-#ifdef CONFIG_X86_SYSENTER
+#ifndef CONFIG_XEN
 /*
  * Debug traps and NMI can happen at the one SYSENTER instruction
  * that sets up the real kernel stack. Check here, since we can't
@@ -705,15 +703,15 @@ label:                                            \
        pushfl;                                 \
        pushl $__KERNEL_CS;                     \
        pushl $sysenter_past_esp
-#endif /* CONFIG_X86_SYSENTER */
+#endif /* CONFIG_XEN */
 
 KPROBE_ENTRY(debug)
-#ifdef CONFIG_X86_SYSENTER
+#ifndef CONFIG_XEN
        cmpl $sysenter_entry,(%esp)
        jne debug_stack_correct
        FIX_STACK(12, debug_stack_correct, debug_esp_fix_insn)
 debug_stack_correct:
-#endif /* !CONFIG_X86_SYSENTER */
+#endif /* !CONFIG_XEN */
        pushl $-1                       # mark this as an int
        SAVE_ALL
        xorl %edx,%edx                  # error code 0
diff -r faad84c126e2 -r d73eeceeae69 
linux-2.6-xen-sparse/arch/i386/kernel/sysenter.c
--- a/linux-2.6-xen-sparse/arch/i386/kernel/sysenter.c  Fri Apr 21 17:19:22 
2006 +0100
+++ b/linux-2.6-xen-sparse/arch/i386/kernel/sysenter.c  Fri Apr 21 17:19:26 
2006 +0100
@@ -24,7 +24,7 @@ extern asmlinkage void sysenter_entry(vo
 
 void enable_sep_cpu(void)
 {
-#ifdef CONFIG_X86_SYSENTER
+#ifndef CONFIG_X86_NO_TSS
        int cpu = get_cpu();
        struct tss_struct *tss = &per_cpu(init_tss, cpu);
 
@@ -54,14 +54,12 @@ int __init sysenter_setup(void)
 {
        syscall_page = (void *)get_zeroed_page(GFP_ATOMIC);
 
-#ifdef CONFIG_X86_SYSENTER
        if (boot_cpu_has(X86_FEATURE_SEP)) {
                memcpy(syscall_page,
                       &vsyscall_sysenter_start,
                       &vsyscall_sysenter_end - &vsyscall_sysenter_start);
                return 0;
        }
-#endif
 
        memcpy(syscall_page,
               &vsyscall_int80_start,
diff -r faad84c126e2 -r d73eeceeae69 
linux-2.6-xen-sparse/arch/i386/kernel/vsyscall.S
--- a/linux-2.6-xen-sparse/arch/i386/kernel/vsyscall.S  Fri Apr 21 17:19:22 
2006 +0100
+++ b/linux-2.6-xen-sparse/arch/i386/kernel/vsyscall.S  Fri Apr 21 17:19:26 
2006 +0100
@@ -7,11 +7,9 @@ vsyscall_int80_start:
        .incbin "arch/i386/kernel/vsyscall-int80.so"
 vsyscall_int80_end:
 
-#ifdef CONFIG_X86_SYSENTER
        .globl vsyscall_sysenter_start, vsyscall_sysenter_end
 vsyscall_sysenter_start:
        .incbin "arch/i386/kernel/vsyscall-sysenter.so"
 vsyscall_sysenter_end:
-#endif
 
 __FINIT
diff -r faad84c126e2 -r d73eeceeae69 
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    Fri Apr 
21 17:19:22 2006 +0100
+++ b/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/processor.h    Fri Apr 
21 17:19:26 2006 +0100
@@ -497,13 +497,11 @@ static inline void __load_esp0(struct ts
 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)

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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.