x86/entry_64: Remove .fixup usage
authorPeter Zijlstra <peterz@infradead.org>
Wed, 10 Nov 2021 10:01:07 +0000 (11:01 +0100)
committerPeter Zijlstra <peterz@infradead.org>
Sat, 11 Dec 2021 08:09:46 +0000 (09:09 +0100)
Place the anonymous .fixup code at the tail of the regular functions.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Josh Poimboeuf <jpoimboe@redhat.com>
Reviewed-by: Borislav Petkov <bp@suse.de>
Reviewed-by: Lai Jiangshan <jiangshanlai@gmail.com>
Link: https://lore.kernel.org/r/20211110101325.186049322@infradead.org
arch/x86/entry/entry_64.S

index e23319a..1ffdbfa 100644 (file)
@@ -739,13 +739,9 @@ SYM_FUNC_START(asm_load_gs_index)
        swapgs
        FRAME_END
        RET
-SYM_FUNC_END(asm_load_gs_index)
-EXPORT_SYMBOL(asm_load_gs_index)
 
-       _ASM_EXTABLE(.Lgs_change, .Lbad_gs)
-       .section .fixup, "ax"
        /* running with kernelgs */
-SYM_CODE_START_LOCAL_NOALIGN(.Lbad_gs)
+.Lbad_gs:
        swapgs                                  /* switch back to user gs */
 .macro ZAP_GS
        /* This can't be a string because the preprocessor needs to see it. */
@@ -756,8 +752,11 @@ SYM_CODE_START_LOCAL_NOALIGN(.Lbad_gs)
        xorl    %eax, %eax
        movl    %eax, %gs
        jmp     2b
-SYM_CODE_END(.Lbad_gs)
-       .previous
+
+       _ASM_EXTABLE(.Lgs_change, .Lbad_gs)
+
+SYM_FUNC_END(asm_load_gs_index)
+EXPORT_SYMBOL(asm_load_gs_index)
 
 #ifdef CONFIG_XEN_PV
 /*