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 15739a2c09833ba30ac8b2eb6a9be9e93608f7ea..7ecd2aeeeffc6a43718dd211a36c345d4c0b041e 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 35f709f619fb4fc2278ddbe09c3ef72f20e1cfcb..a71d0e8d468498b630166e4f10d3d7cf75510de0 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)
 {