# 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
|