Commit c9317202 authored by Thomas Gleixner's avatar Thomas Gleixner

x86/entry/64: Use native swapgs in asm_load_gs_index()

When PARAVIRT_XXL is in use, then load_gs_index() uses xen_load_gs_index()
and asm_load_gs_index() is unused.

It's therefore pointless to use the paravirtualized SWAPGS implementation
in asm_load_gs_index(). Switch it to a plain swapgs.
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Reviewed-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
Acked-by: default avatarJuergen Gross <jgross@suse.com>
Acked-by: default avatarPeter Zijlstra <peterz@infradead.org>
Link: https://lkml.kernel.org/r/20200512213809.583980272@linutronix.de

parent 410367e3
...@@ -1043,11 +1043,11 @@ idtentry simd_coprocessor_error do_simd_coprocessor_error has_error_code=0 ...@@ -1043,11 +1043,11 @@ idtentry simd_coprocessor_error do_simd_coprocessor_error has_error_code=0
*/ */
SYM_FUNC_START(asm_load_gs_index) SYM_FUNC_START(asm_load_gs_index)
FRAME_BEGIN FRAME_BEGIN
SWAPGS swapgs
.Lgs_change: .Lgs_change:
movl %edi, %gs movl %edi, %gs
2: ALTERNATIVE "", "mfence", X86_BUG_SWAPGS_FENCE 2: ALTERNATIVE "", "mfence", X86_BUG_SWAPGS_FENCE
SWAPGS swapgs
FRAME_END FRAME_END
ret ret
SYM_FUNC_END(asm_load_gs_index) SYM_FUNC_END(asm_load_gs_index)
...@@ -1057,7 +1057,7 @@ EXPORT_SYMBOL(asm_load_gs_index) ...@@ -1057,7 +1057,7 @@ EXPORT_SYMBOL(asm_load_gs_index)
.section .fixup, "ax" .section .fixup, "ax"
/* running with kernelgs */ /* running with kernelgs */
SYM_CODE_START_LOCAL_NOALIGN(.Lbad_gs) SYM_CODE_START_LOCAL_NOALIGN(.Lbad_gs)
SWAPGS /* switch back to user gs */ swapgs /* switch back to user gs */
.macro ZAP_GS .macro ZAP_GS
/* This can't be a string because the preprocessor needs to see it. */ /* This can't be a string because the preprocessor needs to see it. */
movl $__USER_DS, %eax movl $__USER_DS, %eax
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment