On Tue, 12 May 2020 23:01:01 +0200
Thomas Gleixner <[email protected]> wrote:

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

Small nit, but I would just call this: asm_load_gs_index.

The "native" word is usually reserved for functions that are for bare
metal and have a paravirt counterpart. As there is a
native_load_gs_index(), I don't envision a need for a paravirt version
of the asm function.

Other than that.

Reviewed-by: Steven Rostedt (VMware) <[email protected]>

-- Steve


>       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