ia64/xen-unstable
changeset 9815:d73eeceeae69
Remove CONFIG_X86_SYSENTER option.
Signed-off-by: Ian Campbell <ian.campbell@xensource.com>
Signed-off-by: Ian Campbell <ian.campbell@xensource.com>
author | Ian.Campbell@xensource.com |
---|---|
date | Fri Apr 21 17:19:26 2006 +0100 (2006-04-21) |
parents | faad84c126e2 |
children | 3ffb6cc6b8d2 |
files | linux-2.6-xen-sparse/arch/i386/Kconfig linux-2.6-xen-sparse/arch/i386/kernel/Makefile linux-2.6-xen-sparse/arch/i386/kernel/asm-offsets.c linux-2.6-xen-sparse/arch/i386/kernel/entry-xen.S linux-2.6-xen-sparse/arch/i386/kernel/sysenter.c linux-2.6-xen-sparse/arch/i386/kernel/vsyscall.S linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/processor.h |
line diff
1.1 --- a/linux-2.6-xen-sparse/arch/i386/Kconfig Fri Apr 21 17:19:22 2006 +0100 1.2 +++ b/linux-2.6-xen-sparse/arch/i386/Kconfig Fri Apr 21 17:19:26 2006 +0100 1.3 @@ -1180,11 +1180,6 @@ config X86_NO_TSS 1.4 depends on X86_XEN 1.5 default y 1.6 1.7 -config X86_SYSENTER 1.8 - bool 1.9 - depends on !X86_NO_TSS 1.10 - default y 1.11 - 1.12 config X86_NO_IDT 1.13 bool 1.14 depends on X86_XEN
2.1 --- a/linux-2.6-xen-sparse/arch/i386/kernel/Makefile Fri Apr 21 17:19:22 2006 +0100 2.2 +++ b/linux-2.6-xen-sparse/arch/i386/kernel/Makefile Fri Apr 21 17:19:26 2006 +0100 2.3 @@ -49,14 +49,12 @@ else 2.4 vsyscall_note := vsyscall-note.o 2.5 endif 2.6 2.7 -VSYSCALL_TYPES-y := int80 2.8 -VSYSCALL_TYPES-$(CONFIG_X86_SYSENTER) += sysenter 2.9 # vsyscall.o contains the vsyscall DSO images as __initdata. 2.10 # We must build both images before we can assemble it. 2.11 # Note: kbuild does not track this dependency due to usage of .incbin 2.12 -$(obj)/vsyscall.o: $(foreach F,$(VSYSCALL_TYPES-y),$(obj)/vsyscall-$F.so) 2.13 -targets += $(foreach F,$(VSYSCALL_TYPES-y),vsyscall-$F.o vsyscall-$F.so) 2.14 -targets += $(vsyscall_note) vsyscall.lds 2.15 +$(obj)/vsyscall.o: $(obj)/vsyscall-int80.so $(obj)/vsyscall-sysenter.so 2.16 +targets += $(foreach F,int80 sysenter,vsyscall-$F.o vsyscall-$F.so) 2.17 +targets += vsyscall-note.o vsyscall.lds 2.18 2.19 # The DSO images are built using a special linker script. 2.20 quiet_cmd_syscall = SYSCALL $@ 2.21 @@ -83,8 +81,7 @@ extra-y += vsyscall-syms.o 2.22 2.23 SYSCFLAGS_vsyscall-syms.o = -r 2.24 $(obj)/vsyscall-syms.o: $(src)/vsyscall.lds \ 2.25 - $(foreach F,$(VSYSCALL_TYPES-y),$(obj)/vsyscall-$F.o) \ 2.26 - $(obj)/$(vsyscall_note) FORCE 2.27 + $(obj)/vsyscall-sysenter.o $(obj)/$(vsyscall_note) FORCE 2.28 $(call if_changed,syscall) 2.29 2.30 ifdef CONFIG_XEN
3.1 --- a/linux-2.6-xen-sparse/arch/i386/kernel/asm-offsets.c Fri Apr 21 17:19:22 2006 +0100 3.2 +++ b/linux-2.6-xen-sparse/arch/i386/kernel/asm-offsets.c Fri Apr 21 17:19:26 2006 +0100 3.3 @@ -64,10 +64,13 @@ void foo(void) 3.4 OFFSET(pbe_orig_address, pbe, orig_address); 3.5 OFFSET(pbe_next, pbe, next); 3.6 3.7 -#ifdef CONFIG_X86_SYSENTER 3.8 +#ifndef CONFIG_X86_NO_TSS 3.9 /* Offset from the sysenter stack to tss.esp0 */ 3.10 DEFINE(TSS_sysenter_esp0, offsetof(struct tss_struct, esp0) - 3.11 sizeof(struct tss_struct)); 3.12 +#else 3.13 + /* sysenter stack points directly to esp0 */ 3.14 + DEFINE(TSS_sysenter_esp0, 0); 3.15 #endif 3.16 3.17 DEFINE(PAGE_SIZE_asm, PAGE_SIZE);
4.1 --- a/linux-2.6-xen-sparse/arch/i386/kernel/entry-xen.S Fri Apr 21 17:19:22 2006 +0100 4.2 +++ b/linux-2.6-xen-sparse/arch/i386/kernel/entry-xen.S Fri Apr 21 17:19:26 2006 +0100 4.3 @@ -202,7 +202,6 @@ need_resched: 4.4 jmp need_resched 4.5 #endif 4.6 4.7 -#ifdef CONFIG_X86_SYSENTER 4.8 /* SYSENTER_RETURN points to after the "sysenter" instruction in 4.9 the vsyscall page. See vsyscall-sysentry.S, which defines the symbol. */ 4.10 4.11 @@ -250,7 +249,6 @@ 1: movl (%ebp),%ebp 4.12 xorl %ebp,%ebp 4.13 sti 4.14 sysexit 4.15 -#endif /* CONFIG_X86_SYSENTER */ 4.16 4.17 4.18 # system call handler stub 4.19 @@ -683,7 +681,7 @@ device_available_emulate: 4.20 call math_state_restore 4.21 jmp ret_from_exception 4.22 4.23 -#ifdef CONFIG_X86_SYSENTER 4.24 +#ifndef CONFIG_XEN 4.25 /* 4.26 * Debug traps and NMI can happen at the one SYSENTER instruction 4.27 * that sets up the real kernel stack. Check here, since we can't 4.28 @@ -705,15 +703,15 @@ label: \ 4.29 pushfl; \ 4.30 pushl $__KERNEL_CS; \ 4.31 pushl $sysenter_past_esp 4.32 -#endif /* CONFIG_X86_SYSENTER */ 4.33 +#endif /* CONFIG_XEN */ 4.34 4.35 KPROBE_ENTRY(debug) 4.36 -#ifdef CONFIG_X86_SYSENTER 4.37 +#ifndef CONFIG_XEN 4.38 cmpl $sysenter_entry,(%esp) 4.39 jne debug_stack_correct 4.40 FIX_STACK(12, debug_stack_correct, debug_esp_fix_insn) 4.41 debug_stack_correct: 4.42 -#endif /* !CONFIG_X86_SYSENTER */ 4.43 +#endif /* !CONFIG_XEN */ 4.44 pushl $-1 # mark this as an int 4.45 SAVE_ALL 4.46 xorl %edx,%edx # error code 0
5.1 --- a/linux-2.6-xen-sparse/arch/i386/kernel/sysenter.c Fri Apr 21 17:19:22 2006 +0100 5.2 +++ b/linux-2.6-xen-sparse/arch/i386/kernel/sysenter.c Fri Apr 21 17:19:26 2006 +0100 5.3 @@ -24,7 +24,7 @@ extern asmlinkage void sysenter_entry(vo 5.4 5.5 void enable_sep_cpu(void) 5.6 { 5.7 -#ifdef CONFIG_X86_SYSENTER 5.8 +#ifndef CONFIG_X86_NO_TSS 5.9 int cpu = get_cpu(); 5.10 struct tss_struct *tss = &per_cpu(init_tss, cpu); 5.11 5.12 @@ -54,14 +54,12 @@ int __init sysenter_setup(void) 5.13 { 5.14 syscall_page = (void *)get_zeroed_page(GFP_ATOMIC); 5.15 5.16 -#ifdef CONFIG_X86_SYSENTER 5.17 if (boot_cpu_has(X86_FEATURE_SEP)) { 5.18 memcpy(syscall_page, 5.19 &vsyscall_sysenter_start, 5.20 &vsyscall_sysenter_end - &vsyscall_sysenter_start); 5.21 return 0; 5.22 } 5.23 -#endif 5.24 5.25 memcpy(syscall_page, 5.26 &vsyscall_int80_start,
6.1 --- a/linux-2.6-xen-sparse/arch/i386/kernel/vsyscall.S Fri Apr 21 17:19:22 2006 +0100 6.2 +++ b/linux-2.6-xen-sparse/arch/i386/kernel/vsyscall.S Fri Apr 21 17:19:26 2006 +0100 6.3 @@ -7,11 +7,9 @@ vsyscall_int80_start: 6.4 .incbin "arch/i386/kernel/vsyscall-int80.so" 6.5 vsyscall_int80_end: 6.6 6.7 -#ifdef CONFIG_X86_SYSENTER 6.8 .globl vsyscall_sysenter_start, vsyscall_sysenter_end 6.9 vsyscall_sysenter_start: 6.10 .incbin "arch/i386/kernel/vsyscall-sysenter.so" 6.11 vsyscall_sysenter_end: 6.12 -#endif 6.13 6.14 __FINIT
7.1 --- a/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/processor.h Fri Apr 21 17:19:22 2006 +0100 7.2 +++ b/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/processor.h Fri Apr 21 17:19:26 2006 +0100 7.3 @@ -497,13 +497,11 @@ struct thread_struct { 7.4 static inline void __load_esp0(struct tss_struct *tss, struct thread_struct *thread) 7.5 { 7.6 tss->esp0 = thread->esp0; 7.7 -#ifdef CONFIG_X86_SYSENTER 7.8 /* This can only happen when SEP is enabled, no need to test "SEP"arately */ 7.9 if (unlikely(tss->ss1 != thread->sysenter_cs)) { 7.10 tss->ss1 = thread->sysenter_cs; 7.11 wrmsr(MSR_IA32_SYSENTER_CS, thread->sysenter_cs, 0); 7.12 } 7.13 -#endif 7.14 } 7.15 #define load_esp0(tss, thread) \ 7.16 __load_esp0(tss, thread)