ARM: 9200/1: spectre-bhb: avoid cross-subsection jump using a numbered label
authorArd Biesheuvel <ardb@kernel.org>
Wed, 20 Apr 2022 09:02:43 +0000 (10:02 +0100)
committerRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Fri, 20 May 2022 11:33:47 +0000 (12:33 +0100)
In order to minimize potential confusion regarding numbered labels
appearing in a different order in the assembler output due to the use of
subsections, use a named local label to jump back into the vector
handler code from the associated loop8 mitigation sequence.

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
arch/arm/kernel/entry-armv.S

index 43ab775..df02044 100644 (file)
@@ -1094,7 +1094,8 @@ vector_\name:
        stmia   sp, {r0, lr}            @ save r0, lr
 
        @ Save spsr_<exception> (parent CPSR)
-2:     mrs     lr, spsr
+.Lvec_\name:
+       mrs     lr, spsr
        str     lr, [sp, #8]            @ save spsr
 
        @
@@ -1134,7 +1135,7 @@ vector_bhb_loop8_\name:
        dsb     nsh
        @ isb not needed due to "movs pc, lr" in the vector stub
        @ which gives a "context synchronisation".
-       b       2b
+       b       .Lvec_\name
 ENDPROC(vector_bhb_loop8_\name)
        .previous
 #endif