x86/gsseg: Make asm_load_gs_index() take an u16
authorH. Peter Anvin (Intel) <hpa@zytor.com>
Thu, 12 Jan 2023 07:20:30 +0000 (23:20 -0800)
committerIngo Molnar <mingo@kernel.org>
Thu, 12 Jan 2023 12:06:36 +0000 (13:06 +0100)
Let GCC know that only the low 16 bits of load_gs_index() argument
actually matter. It might allow it to create slightly better
code. However, do not propagate this into the prototypes of functions
that end up being paravirtualized, to avoid unnecessary changes.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Signed-off-by: Xin Li <xin3.li@intel.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://lore.kernel.org/r/20230112072032.35626-4-xin3.li@intel.com
arch/x86/entry/entry_64.S
arch/x86/include/asm/special_insns.h

index 15739a2..7ecd2ae 100644 (file)
@@ -782,7 +782,7 @@ _ASM_NOKPROBE(common_interrupt_return)
 
 /*
  * Reload gs selector with exception handling
- * edi:  new selector
+ *  di:  new selector
  *
  * Is in entry.text as it shouldn't be instrumented.
  */
index 35f709f..a71d0e8 100644 (file)
@@ -120,7 +120,7 @@ static inline void native_wbinvd(void)
        asm volatile("wbinvd": : :"memory");
 }
 
-extern asmlinkage void asm_load_gs_index(unsigned int selector);
+extern asmlinkage void asm_load_gs_index(u16 selector);
 
 static inline void native_load_gs_index(unsigned int selector)
 {