|
Borislav Petkov |
fa7ee3 |
From: Peter Zijlstra <peterz@infradead.org>
|
|
Borislav Petkov |
fa7ee3 |
Date: Thu, 24 Mar 2022 00:05:55 +0100
|
|
Borislav Petkov |
fa7ee3 |
Subject: crypto: x86/poly1305 - Fixup SLS
|
|
Borislav Petkov |
fa7ee3 |
Git-commit: 7ed7aa4de9421229be6d331ed52d5cd09c99f409
|
|
Borislav Petkov |
fa7ee3 |
Patch-mainline: v5.18-rc1
|
|
Borislav Petkov |
fa7ee3 |
References: bsc#1201050 CVE-2021-26341
|
|
Borislav Petkov |
fa7ee3 |
|
|
Borislav Petkov |
fa7ee3 |
Due to being a perl generated asm file, it got missed by the mass
|
|
Borislav Petkov |
fa7ee3 |
convertion script.
|
|
Borislav Petkov |
fa7ee3 |
|
|
Borislav Petkov |
fa7ee3 |
arch/x86/crypto/poly1305-x86_64-cryptogams.o: warning: objtool: poly1305_init_x86_64()+0x3a: missing int3 after ret
|
|
Borislav Petkov |
fa7ee3 |
arch/x86/crypto/poly1305-x86_64-cryptogams.o: warning: objtool: poly1305_blocks_x86_64()+0xf2: missing int3 after ret
|
|
Borislav Petkov |
fa7ee3 |
arch/x86/crypto/poly1305-x86_64-cryptogams.o: warning: objtool: poly1305_emit_x86_64()+0x37: missing int3 after ret
|
|
Borislav Petkov |
fa7ee3 |
arch/x86/crypto/poly1305-x86_64-cryptogams.o: warning: objtool: __poly1305_block()+0x6d: missing int3 after ret
|
|
Borislav Petkov |
fa7ee3 |
arch/x86/crypto/poly1305-x86_64-cryptogams.o: warning: objtool: __poly1305_init_avx()+0x1e8: missing int3 after ret
|
|
Borislav Petkov |
fa7ee3 |
arch/x86/crypto/poly1305-x86_64-cryptogams.o: warning: objtool: poly1305_blocks_avx()+0x18a: missing int3 after ret
|
|
Borislav Petkov |
fa7ee3 |
arch/x86/crypto/poly1305-x86_64-cryptogams.o: warning: objtool: poly1305_blocks_avx()+0xaf8: missing int3 after ret
|
|
Borislav Petkov |
fa7ee3 |
arch/x86/crypto/poly1305-x86_64-cryptogams.o: warning: objtool: poly1305_emit_avx()+0x99: missing int3 after ret
|
|
Borislav Petkov |
fa7ee3 |
arch/x86/crypto/poly1305-x86_64-cryptogams.o: warning: objtool: poly1305_blocks_avx2()+0x18a: missing int3 after ret
|
|
Borislav Petkov |
fa7ee3 |
arch/x86/crypto/poly1305-x86_64-cryptogams.o: warning: objtool: poly1305_blocks_avx2()+0x776: missing int3 after ret
|
|
Borislav Petkov |
fa7ee3 |
arch/x86/crypto/poly1305-x86_64-cryptogams.o: warning: objtool: poly1305_blocks_avx512()+0x18a: missing int3 after ret
|
|
Borislav Petkov |
fa7ee3 |
arch/x86/crypto/poly1305-x86_64-cryptogams.o: warning: objtool: poly1305_blocks_avx512()+0x796: missing int3 after ret
|
|
Borislav Petkov |
fa7ee3 |
arch/x86/crypto/poly1305-x86_64-cryptogams.o: warning: objtool: poly1305_blocks_avx512()+0x10bd: missing int3 after ret
|
|
Borislav Petkov |
fa7ee3 |
|
|
Borislav Petkov |
fa7ee3 |
Fixes: f94909ceb1ed ("x86: Prepare asm files for straight-line-speculation")
|
|
Borislav Petkov |
fa7ee3 |
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
|
|
Borislav Petkov |
fa7ee3 |
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
|
|
Borislav Petkov |
fa7ee3 |
Acked-by: Borislav Petkov <bp@suse.de>
|
|
Borislav Petkov |
fa7ee3 |
---
|
|
Borislav Petkov |
fa7ee3 |
arch/x86/crypto/poly1305-x86_64-cryptogams.pl | 38 +++++++++++++--------------
|
|
Borislav Petkov |
fa7ee3 |
1 file changed, 19 insertions(+), 19 deletions(-)
|
|
Borislav Petkov |
fa7ee3 |
|
|
Borislav Petkov |
fa7ee3 |
diff --git a/arch/x86/crypto/poly1305-x86_64-cryptogams.pl b/arch/x86/crypto/poly1305-x86_64-cryptogams.pl
|
|
Borislav Petkov |
fa7ee3 |
index 71fae5a09e56..2077ce7a5647 100644
|
|
Borislav Petkov |
fa7ee3 |
--- a/arch/x86/crypto/poly1305-x86_64-cryptogams.pl
|
|
Borislav Petkov |
fa7ee3 |
+++ b/arch/x86/crypto/poly1305-x86_64-cryptogams.pl
|
|
Borislav Petkov |
fa7ee3 |
@@ -297,7 +297,7 @@ ___
|
|
Borislav Petkov |
fa7ee3 |
$code.=<<___;
|
|
Borislav Petkov |
fa7ee3 |
mov \$1,%eax
|
|
Borislav Petkov |
fa7ee3 |
.Lno_key:
|
|
Borislav Petkov |
fa7ee3 |
- ret
|
|
Borislav Petkov |
fa7ee3 |
+ RET
|
|
Borislav Petkov |
fa7ee3 |
___
|
|
Borislav Petkov |
fa7ee3 |
&end_function("poly1305_init_x86_64");
|
|
Borislav Petkov |
fa7ee3 |
|
|
Borislav Petkov |
fa7ee3 |
@@ -373,7 +373,7 @@ $code.=<<___;
|
|
Borislav Petkov |
fa7ee3 |
.cfi_adjust_cfa_offset -48
|
|
Borislav Petkov |
fa7ee3 |
.Lno_data:
|
|
Borislav Petkov |
fa7ee3 |
.Lblocks_epilogue:
|
|
Borislav Petkov |
fa7ee3 |
- ret
|
|
Borislav Petkov |
fa7ee3 |
+ RET
|
|
Borislav Petkov |
fa7ee3 |
.cfi_endproc
|
|
Borislav Petkov |
fa7ee3 |
___
|
|
Borislav Petkov |
fa7ee3 |
&end_function("poly1305_blocks_x86_64");
|
|
Borislav Petkov |
fa7ee3 |
@@ -399,7 +399,7 @@ $code.=<<___;
|
|
Borislav Petkov |
fa7ee3 |
mov %rax,0($mac) # write result
|
|
Borislav Petkov |
fa7ee3 |
mov %rcx,8($mac)
|
|
Borislav Petkov |
fa7ee3 |
|
|
Borislav Petkov |
fa7ee3 |
- ret
|
|
Borislav Petkov |
fa7ee3 |
+ RET
|
|
Borislav Petkov |
fa7ee3 |
___
|
|
Borislav Petkov |
fa7ee3 |
&end_function("poly1305_emit_x86_64");
|
|
Borislav Petkov |
fa7ee3 |
if ($avx) {
|
|
Borislav Petkov |
fa7ee3 |
@@ -429,7 +429,7 @@ ___
|
|
Borislav Petkov |
fa7ee3 |
&poly1305_iteration();
|
|
Borislav Petkov |
fa7ee3 |
$code.=<<___;
|
|
Borislav Petkov |
fa7ee3 |
pop $ctx
|
|
Borislav Petkov |
fa7ee3 |
- ret
|
|
Borislav Petkov |
fa7ee3 |
+ RET
|
|
Borislav Petkov |
fa7ee3 |
.size __poly1305_block,.-__poly1305_block
|
|
Borislav Petkov |
fa7ee3 |
|
|
Borislav Petkov |
fa7ee3 |
.type __poly1305_init_avx,\@abi-omnipotent
|
|
Borislav Petkov |
fa7ee3 |
@@ -594,7 +594,7 @@ __poly1305_init_avx:
|
|
Borislav Petkov |
fa7ee3 |
|
|
Borislav Petkov |
fa7ee3 |
lea -48-64($ctx),$ctx # size [de-]optimization
|
|
Borislav Petkov |
fa7ee3 |
pop %rbp
|
|
Borislav Petkov |
fa7ee3 |
- ret
|
|
Borislav Petkov |
fa7ee3 |
+ RET
|
|
Borislav Petkov |
fa7ee3 |
.size __poly1305_init_avx,.-__poly1305_init_avx
|
|
Borislav Petkov |
fa7ee3 |
___
|
|
Borislav Petkov |
fa7ee3 |
|
|
Borislav Petkov |
fa7ee3 |
@@ -747,7 +747,7 @@ $code.=<<___;
|
|
Borislav Petkov |
fa7ee3 |
.cfi_restore %rbp
|
|
Borislav Petkov |
fa7ee3 |
.Lno_data_avx:
|
|
Borislav Petkov |
fa7ee3 |
.Lblocks_avx_epilogue:
|
|
Borislav Petkov |
fa7ee3 |
- ret
|
|
Borislav Petkov |
fa7ee3 |
+ RET
|
|
Borislav Petkov |
fa7ee3 |
.cfi_endproc
|
|
Borislav Petkov |
fa7ee3 |
|
|
Borislav Petkov |
fa7ee3 |
.align 32
|
|
Borislav Petkov |
fa7ee3 |
@@ -1452,7 +1452,7 @@ $code.=<<___ if (!$win64);
|
|
Borislav Petkov |
fa7ee3 |
___
|
|
Borislav Petkov |
fa7ee3 |
$code.=<<___;
|
|
Borislav Petkov |
fa7ee3 |
vzeroupper
|
|
Borislav Petkov |
fa7ee3 |
- ret
|
|
Borislav Petkov |
fa7ee3 |
+ RET
|
|
Borislav Petkov |
fa7ee3 |
.cfi_endproc
|
|
Borislav Petkov |
fa7ee3 |
___
|
|
Borislav Petkov |
fa7ee3 |
&end_function("poly1305_blocks_avx");
|
|
Borislav Petkov |
fa7ee3 |
@@ -1508,7 +1508,7 @@ $code.=<<___;
|
|
Borislav Petkov |
fa7ee3 |
mov %rax,0($mac) # write result
|
|
Borislav Petkov |
fa7ee3 |
mov %rcx,8($mac)
|
|
Borislav Petkov |
fa7ee3 |
|
|
Borislav Petkov |
fa7ee3 |
- ret
|
|
Borislav Petkov |
fa7ee3 |
+ RET
|
|
Borislav Petkov |
fa7ee3 |
___
|
|
Borislav Petkov |
fa7ee3 |
&end_function("poly1305_emit_avx");
|
|
Borislav Petkov |
fa7ee3 |
|
|
Borislav Petkov |
fa7ee3 |
@@ -1675,7 +1675,7 @@ $code.=<<___;
|
|
Borislav Petkov |
fa7ee3 |
.cfi_restore %rbp
|
|
Borislav Petkov |
fa7ee3 |
.Lno_data_avx2$suffix:
|
|
Borislav Petkov |
fa7ee3 |
.Lblocks_avx2_epilogue$suffix:
|
|
Borislav Petkov |
fa7ee3 |
- ret
|
|
Borislav Petkov |
fa7ee3 |
+ RET
|
|
Borislav Petkov |
fa7ee3 |
.cfi_endproc
|
|
Borislav Petkov |
fa7ee3 |
|
|
Borislav Petkov |
fa7ee3 |
.align 32
|
|
Borislav Petkov |
fa7ee3 |
@@ -2201,7 +2201,7 @@ $code.=<<___ if (!$win64);
|
|
Borislav Petkov |
fa7ee3 |
___
|
|
Borislav Petkov |
fa7ee3 |
$code.=<<___;
|
|
Borislav Petkov |
fa7ee3 |
vzeroupper
|
|
Borislav Petkov |
fa7ee3 |
- ret
|
|
Borislav Petkov |
fa7ee3 |
+ RET
|
|
Borislav Petkov |
fa7ee3 |
.cfi_endproc
|
|
Borislav Petkov |
fa7ee3 |
___
|
|
Borislav Petkov |
fa7ee3 |
if($avx > 2 && $avx512) {
|
|
Borislav Petkov |
fa7ee3 |
@@ -2792,7 +2792,7 @@ $code.=<<___ if (!$win64);
|
|
Borislav Petkov |
fa7ee3 |
.cfi_def_cfa_register %rsp
|
|
Borislav Petkov |
fa7ee3 |
___
|
|
Borislav Petkov |
fa7ee3 |
$code.=<<___;
|
|
Borislav Petkov |
fa7ee3 |
- ret
|
|
Borislav Petkov |
fa7ee3 |
+ RET
|
|
Borislav Petkov |
fa7ee3 |
.cfi_endproc
|
|
Borislav Petkov |
fa7ee3 |
___
|
|
Borislav Petkov |
fa7ee3 |
|
|
Borislav Petkov |
fa7ee3 |
@@ -2893,7 +2893,7 @@ $code.=<<___ if ($flavour =~ /elf32/);
|
|
Borislav Petkov |
fa7ee3 |
___
|
|
Borislav Petkov |
fa7ee3 |
$code.=<<___;
|
|
Borislav Petkov |
fa7ee3 |
mov \$1,%eax
|
|
Borislav Petkov |
fa7ee3 |
- ret
|
|
Borislav Petkov |
fa7ee3 |
+ RET
|
|
Borislav Petkov |
fa7ee3 |
.size poly1305_init_base2_44,.-poly1305_init_base2_44
|
|
Borislav Petkov |
fa7ee3 |
___
|
|
Borislav Petkov |
fa7ee3 |
{
|
|
Borislav Petkov |
fa7ee3 |
@@ -3010,7 +3010,7 @@ poly1305_blocks_vpmadd52:
|
|
Borislav Petkov |
fa7ee3 |
jnz .Lblocks_vpmadd52_4x
|
|
Borislav Petkov |
fa7ee3 |
|
|
Borislav Petkov |
fa7ee3 |
.Lno_data_vpmadd52:
|
|
Borislav Petkov |
fa7ee3 |
- ret
|
|
Borislav Petkov |
fa7ee3 |
+ RET
|
|
Borislav Petkov |
fa7ee3 |
.size poly1305_blocks_vpmadd52,.-poly1305_blocks_vpmadd52
|
|
Borislav Petkov |
fa7ee3 |
___
|
|
Borislav Petkov |
fa7ee3 |
}
|
|
Borislav Petkov |
fa7ee3 |
@@ -3451,7 +3451,7 @@ poly1305_blocks_vpmadd52_4x:
|
|
Borislav Petkov |
fa7ee3 |
vzeroall
|
|
Borislav Petkov |
fa7ee3 |
|
|
Borislav Petkov |
fa7ee3 |
.Lno_data_vpmadd52_4x:
|
|
Borislav Petkov |
fa7ee3 |
- ret
|
|
Borislav Petkov |
fa7ee3 |
+ RET
|
|
Borislav Petkov |
fa7ee3 |
.size poly1305_blocks_vpmadd52_4x,.-poly1305_blocks_vpmadd52_4x
|
|
Borislav Petkov |
fa7ee3 |
___
|
|
Borislav Petkov |
fa7ee3 |
}
|
|
Borislav Petkov |
fa7ee3 |
@@ -3824,7 +3824,7 @@ $code.=<<___;
|
|
Borislav Petkov |
fa7ee3 |
vzeroall
|
|
Borislav Petkov |
fa7ee3 |
|
|
Borislav Petkov |
fa7ee3 |
.Lno_data_vpmadd52_8x:
|
|
Borislav Petkov |
fa7ee3 |
- ret
|
|
Borislav Petkov |
fa7ee3 |
+ RET
|
|
Borislav Petkov |
fa7ee3 |
.size poly1305_blocks_vpmadd52_8x,.-poly1305_blocks_vpmadd52_8x
|
|
Borislav Petkov |
fa7ee3 |
___
|
|
Borislav Petkov |
fa7ee3 |
}
|
|
Borislav Petkov |
fa7ee3 |
@@ -3861,7 +3861,7 @@ poly1305_emit_base2_44:
|
|
Borislav Petkov |
fa7ee3 |
mov %rax,0($mac) # write result
|
|
Borislav Petkov |
fa7ee3 |
mov %rcx,8($mac)
|
|
Borislav Petkov |
fa7ee3 |
|
|
Borislav Petkov |
fa7ee3 |
- ret
|
|
Borislav Petkov |
fa7ee3 |
+ RET
|
|
Borislav Petkov |
fa7ee3 |
.size poly1305_emit_base2_44,.-poly1305_emit_base2_44
|
|
Borislav Petkov |
fa7ee3 |
___
|
|
Borislav Petkov |
fa7ee3 |
} } }
|
|
Borislav Petkov |
fa7ee3 |
@@ -3916,7 +3916,7 @@ xor128_encrypt_n_pad:
|
|
Borislav Petkov |
fa7ee3 |
|
|
Borislav Petkov |
fa7ee3 |
.Ldone_enc:
|
|
Borislav Petkov |
fa7ee3 |
mov $otp,%rax
|
|
Borislav Petkov |
fa7ee3 |
- ret
|
|
Borislav Petkov |
fa7ee3 |
+ RET
|
|
Borislav Petkov |
fa7ee3 |
.size xor128_encrypt_n_pad,.-xor128_encrypt_n_pad
|
|
Borislav Petkov |
fa7ee3 |
|
|
Borislav Petkov |
fa7ee3 |
.globl xor128_decrypt_n_pad
|
|
Borislav Petkov |
fa7ee3 |
@@ -3967,7 +3967,7 @@ xor128_decrypt_n_pad:
|
|
Borislav Petkov |
fa7ee3 |
|
|
Borislav Petkov |
fa7ee3 |
.Ldone_dec:
|
|
Borislav Petkov |
fa7ee3 |
mov $otp,%rax
|
|
Borislav Petkov |
fa7ee3 |
- ret
|
|
Borislav Petkov |
fa7ee3 |
+ RET
|
|
Borislav Petkov |
fa7ee3 |
.size xor128_decrypt_n_pad,.-xor128_decrypt_n_pad
|
|
Borislav Petkov |
fa7ee3 |
___
|
|
Borislav Petkov |
fa7ee3 |
}
|
|
Borislav Petkov |
fa7ee3 |
@@ -4109,7 +4109,7 @@ avx_handler:
|
|
Borislav Petkov |
fa7ee3 |
pop %rbx
|
|
Borislav Petkov |
fa7ee3 |
pop %rdi
|
|
Borislav Petkov |
fa7ee3 |
pop %rsi
|
|
Borislav Petkov |
fa7ee3 |
- ret
|
|
Borislav Petkov |
fa7ee3 |
+ RET
|
|
Borislav Petkov |
fa7ee3 |
.size avx_handler,.-avx_handler
|
|
Borislav Petkov |
fa7ee3 |
|
|
Borislav Petkov |
fa7ee3 |
.section .pdata
|
|
Borislav Petkov |
fa7ee3 |
|