aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/xen
diff options
context:
space:
mode:
authorAndy Lutomirski <luto@kernel.org>2015-04-03 18:51:54 -0400
committerIngo Molnar <mingo@kernel.org>2015-04-22 02:07:45 -0400
commitaac82d319148c6a84e1bf90b86d3e0ec8bf0ee38 (patch)
tree74933148fcee2939f903c969bfdb6676ef02f3ea /arch/x86/xen
parent6a907738ab9840ca3d71c22cd28fba4cbae7f7ce (diff)
x86, paravirt, xen: Remove the 64-bit ->irq_enable_sysexit() pvop
We don't use irq_enable_sysexit on 64-bit kernels any more. Remove all the paravirt and Xen machinery to support it on 64-bit kernels. Tested-by: Boris Ostrovsky <boris.ostrovsky@oracle.com> Signed-off-by: Andy Lutomirski <luto@kernel.org> Cc: Andy Lutomirski <luto@amacapital.net> Cc: Borislav Petkov <bp@alien8.de> Cc: Brian Gerst <brgerst@gmail.com> Cc: Denys Vlasenko <dvlasenk@redhat.com> Cc: Denys Vlasenko <vda.linux@googlemail.com> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Thomas Gleixner <tglx@linutronix.de> Link: http://lkml.kernel.org/r/8a03355698fe5b94194e9e7360f19f91c1b2cf1f.1428100853.git.luto@kernel.org Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/x86/xen')
-rw-r--r--arch/x86/xen/enlighten.c3
-rw-r--r--arch/x86/xen/xen-asm_64.S16
-rw-r--r--arch/x86/xen/xen-ops.h2
3 files changed, 4 insertions, 17 deletions
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index 81665c9f2132..3797b6b31f95 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -1267,10 +1267,11 @@ static const struct pv_cpu_ops xen_cpu_ops __initconst = {
1267 .read_tscp = native_read_tscp, 1267 .read_tscp = native_read_tscp,
1268 1268
1269 .iret = xen_iret, 1269 .iret = xen_iret,
1270 .irq_enable_sysexit = xen_sysexit,
1271#ifdef CONFIG_X86_64 1270#ifdef CONFIG_X86_64
1272 .usergs_sysret32 = xen_sysret32, 1271 .usergs_sysret32 = xen_sysret32,
1273 .usergs_sysret64 = xen_sysret64, 1272 .usergs_sysret64 = xen_sysret64,
1273#else
1274 .irq_enable_sysexit = xen_sysexit,
1274#endif 1275#endif
1275 1276
1276 .load_tr_desc = paravirt_nop, 1277 .load_tr_desc = paravirt_nop,
diff --git a/arch/x86/xen/xen-asm_64.S b/arch/x86/xen/xen-asm_64.S
index 985fc3ee0973..a2cabb8bd6bf 100644
--- a/arch/x86/xen/xen-asm_64.S
+++ b/arch/x86/xen/xen-asm_64.S
@@ -47,22 +47,6 @@ ENTRY(xen_iret)
47ENDPATCH(xen_iret) 47ENDPATCH(xen_iret)
48RELOC(xen_iret, 1b+1) 48RELOC(xen_iret, 1b+1)
49 49
50/*
51 * sysexit is not used for 64-bit processes, so it's only ever used to
52 * return to 32-bit compat userspace.
53 */
54ENTRY(xen_sysexit)
55 pushq $__USER32_DS
56 pushq %rcx
57 pushq $X86_EFLAGS_IF
58 pushq $__USER32_CS
59 pushq %rdx
60
61 pushq $0
621: jmp hypercall_iret
63ENDPATCH(xen_sysexit)
64RELOC(xen_sysexit, 1b+1)
65
66ENTRY(xen_sysret64) 50ENTRY(xen_sysret64)
67 /* 51 /*
68 * We're already on the usermode stack at this point, but 52 * We're already on the usermode stack at this point, but
diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
index 9e195c683549..c20fe29e65f4 100644
--- a/arch/x86/xen/xen-ops.h
+++ b/arch/x86/xen/xen-ops.h
@@ -134,7 +134,9 @@ DECL_ASM(void, xen_restore_fl_direct, unsigned long);
134 134
135/* These are not functions, and cannot be called normally */ 135/* These are not functions, and cannot be called normally */
136__visible void xen_iret(void); 136__visible void xen_iret(void);
137#ifdef CONFIG_X86_32
137__visible void xen_sysexit(void); 138__visible void xen_sysexit(void);
139#endif
138__visible void xen_sysret32(void); 140__visible void xen_sysret32(void);
139__visible void xen_sysret64(void); 141__visible void xen_sysret64(void);
140__visible void xen_adjust_exception_frame(void); 142__visible void xen_adjust_exception_frame(void);