aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/crypto
diff options
context:
space:
mode:
authorPeter Zijlstra <peterz@infradead.org>2022-03-08 16:30:27 +0100
committerPeter Zijlstra <peterz@infradead.org>2022-03-15 10:32:36 +0100
commit214b9a83b617367d53680812ad09687542370b8e (patch)
tree013bbe99d30a700497772ccf8a702603d60d324c /arch/x86/crypto
parentx86/ibt,paravirt: Sprinkle ENDBR (diff)
downloadlinux-dev-214b9a83b617367d53680812ad09687542370b8e.tar.xz
linux-dev-214b9a83b617367d53680812ad09687542370b8e.zip
x86/ibt,crypto: Add ENDBR for the jump-table entries
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
Diffstat (limited to 'arch/x86/crypto')
-rw-r--r--arch/x86/crypto/crc32c-pcl-intel-asm_64.S3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/x86/crypto/crc32c-pcl-intel-asm_64.S b/arch/x86/crypto/crc32c-pcl-intel-asm_64.S
index 80c0d22fc42c..ec35915f0901 100644
--- a/arch/x86/crypto/crc32c-pcl-intel-asm_64.S
+++ b/arch/x86/crypto/crc32c-pcl-intel-asm_64.S
@@ -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