ia64/xen-unstable

changeset 9815:d73eeceeae69

Remove CONFIG_X86_SYSENTER option.

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)