[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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |