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

It's therefore pointless to use the paravirtualized SWAPGS implementation
in asm_native_load_gs_index(). Switch it to a plain swapgs.

Signed-off-by: Thomas Gleixner <[email protected]>
Cc: Juergen Gross <[email protected]>
---
 arch/x86/entry/entry_64.S |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

--- a/arch/x86/entry/entry_64.S
+++ b/arch/x86/entry/entry_64.S
@@ -1043,11 +1043,11 @@ idtentry simd_coprocessor_error         do_simd
  */
 SYM_FUNC_START(asm_native_load_gs_index)
        FRAME_BEGIN
-       SWAPGS
+       swapgs
 .Lgs_change:
        movl    %edi, %gs
 2:     ALTERNATIVE "", "mfence", X86_BUG_SWAPGS_FENCE
-       SWAPGS
+       swapgs
        FRAME_END
        ret
 SYM_FUNC_END(asm_native_load_gs_index)
@@ -1057,7 +1057,7 @@ EXPORT_SYMBOL(asm_native_load_gs_index)
        .section .fixup, "ax"
        /* running with kernelgs */
 SYM_CODE_START_LOCAL_NOALIGN(.Lbad_gs)
-       SWAPGS                                  /* switch back to user gs */
+       swapgs                                  /* switch back to user gs */
 .macro ZAP_GS
        /* This can't be a string because the preprocessor needs to see it. */
        movl $__USER_DS, %eax

Reply via email to