x86/asm: Merge load_gs_index()
authorBrian Gerst <brgerst@gmail.com>
Fri, 25 Mar 2022 15:39:53 +0000 (11:39 -0400)
committerBorislav Petkov <bp@suse.de>
Thu, 14 Apr 2022 12:15:54 +0000 (14:15 +0200)
Merge the 32- and 64-bit implementations of load_gs_index().

Signed-off-by: Brian Gerst <brgerst@gmail.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Andy Lutomirski <luto@kernel.org>
Link: https://lore.kernel.org/r/20220325153953.162643-5-brgerst@gmail.com
arch/x86/include/asm/segment.h
arch/x86/include/asm/special_insns.h

index 617b3663e4dd89313418ae120041ed0c4e186bc3..2e7890dd58a47714fbba4bbddb68e05605835ee5 100644 (file)
@@ -350,13 +350,6 @@ static inline void __loadsegment_fs(unsigned short value)
 #define savesegment(seg, value)                                \
        asm("mov %%" #seg ",%0":"=r" (value) : : "memory")
 
-/*
- * x86-32 user GS accessors.  This is ugly and could do with some cleaning up.
- */
-#ifdef CONFIG_X86_32
-# define load_gs_index(v)              loadsegment(gs, (v))
-#endif /* X86_32 */
-
 #endif /* !__ASSEMBLY__ */
 #endif /* __KERNEL__ */
 
index 68c257a3de0d393b9ba904526fb485bb5f12ab38..45b18eb94fa1a854933f78ed6df4371d4855bb4d 100644 (file)
@@ -184,14 +184,15 @@ static inline void wbinvd(void)
        native_wbinvd();
 }
 
-#ifdef CONFIG_X86_64
 
 static inline void load_gs_index(unsigned int selector)
 {
+#ifdef CONFIG_X86_64
        native_load_gs_index(selector);
-}
-
+#else
+       loadsegment(gs, selector);
 #endif
+}
 
 #endif /* CONFIG_PARAVIRT_XXL */