WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] Remove CONFIG_X86_SYSENTER option., Xen patchbot -unstable <=