diff options
author | Andy Lutomirski <luto@kernel.org> | 2015-04-03 18:51:54 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2015-04-22 02:07:45 -0400 |
commit | aac82d319148c6a84e1bf90b86d3e0ec8bf0ee38 (patch) | |
tree | 74933148fcee2939f903c969bfdb6676ef02f3ea /arch/x86/xen | |
parent | 6a907738ab9840ca3d71c22cd28fba4cbae7f7ce (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.c | 3 | ||||
-rw-r--r-- | arch/x86/xen/xen-asm_64.S | 16 | ||||
-rw-r--r-- | arch/x86/xen/xen-ops.h | 2 |
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) | |||
47 | ENDPATCH(xen_iret) | 47 | ENDPATCH(xen_iret) |
48 | RELOC(xen_iret, 1b+1) | 48 | RELOC(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 | */ | ||
54 | ENTRY(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 | ||
62 | 1: jmp hypercall_iret | ||
63 | ENDPATCH(xen_sysexit) | ||
64 | RELOC(xen_sysexit, 1b+1) | ||
65 | |||
66 | ENTRY(xen_sysret64) | 50 | ENTRY(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); |