x86/ibt,crypto: Add ENDBR for the jump-table entries
authorPeter Zijlstra <peterz@infradead.org>
Tue, 8 Mar 2022 15:30:27 +0000 (16:30 +0100)
committerPeter Zijlstra <peterz@infradead.org>
Tue, 15 Mar 2022 09:32:36 +0000 (10:32 +0100)
The code does:

## branch into array
mov     jump_table(,%rax,8), %bufp
JMP_NOSPEC bufp

resulting in needing to mark the jump-table entries with ENDBR.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Josh Poimboeuf <jpoimboe@redhat.com>
Link: https://lore.kernel.org/r/20220308154318.110500806@infradead.org
arch/x86/crypto/crc32c-pcl-intel-asm_64.S

index 80c0d22..ec35915 100644 (file)
@@ -195,6 +195,7 @@ crc_array:
 .altmacro
 LABEL crc_ %i
 .noaltmacro
+       ENDBR
        crc32q   -i*8(block_0), crc_init
        crc32q   -i*8(block_1), crc1
        crc32q   -i*8(block_2), crc2
@@ -204,6 +205,7 @@ LABEL crc_ %i
 .altmacro
 LABEL crc_ %i
 .noaltmacro
+       ENDBR
        crc32q   -i*8(block_0), crc_init
        crc32q   -i*8(block_1), crc1
 # SKIP  crc32  -i*8(block_2), crc2 ; Don't do this one yet
@@ -237,6 +239,7 @@ LABEL crc_ %i
        ################################################################
 
 LABEL crc_ 0
+       ENDBR
        mov     tmp, len
        cmp     $128*24, tmp
        jae     full_block