mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-03 07:38:10 +00:00
crypto: x86/sha1-avx2 - Fix RBP usage
Using RBP as a temporary register breaks frame pointer convention and breaks stack traces when unwinding from an interrupt in the crypto code. Use R11 instead of RBP. Since R11 isn't a callee-saved register, it doesn't need to be saved and restored on the stack. Reported-by: Eric Biggers <ebiggers@google.com> Reported-by: Peter Zijlstra <peterz@infradead.org> Tested-by: Eric Biggers <ebiggers@google.com> Acked-by: Eric Biggers <ebiggers@google.com> Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
3ed7b4d67c
commit
d7b1722c72
1 changed files with 1 additions and 3 deletions
|
@ -89,7 +89,7 @@
|
||||||
#define REG_RE %rdx
|
#define REG_RE %rdx
|
||||||
#define REG_RTA %r12
|
#define REG_RTA %r12
|
||||||
#define REG_RTB %rbx
|
#define REG_RTB %rbx
|
||||||
#define REG_T1 %ebp
|
#define REG_T1 %r11d
|
||||||
#define xmm_mov vmovups
|
#define xmm_mov vmovups
|
||||||
#define avx2_zeroupper vzeroupper
|
#define avx2_zeroupper vzeroupper
|
||||||
#define RND_F1 1
|
#define RND_F1 1
|
||||||
|
@ -637,7 +637,6 @@ _loop3:
|
||||||
ENTRY(\name)
|
ENTRY(\name)
|
||||||
|
|
||||||
push %rbx
|
push %rbx
|
||||||
push %rbp
|
|
||||||
push %r12
|
push %r12
|
||||||
push %r13
|
push %r13
|
||||||
push %r14
|
push %r14
|
||||||
|
@ -673,7 +672,6 @@ _loop3:
|
||||||
pop %r14
|
pop %r14
|
||||||
pop %r13
|
pop %r13
|
||||||
pop %r12
|
pop %r12
|
||||||
pop %rbp
|
|
||||||
pop %rbx
|
pop %rbx
|
||||||
|
|
||||||
ret
|
ret
|
||||||
|
|
Loading…
Reference in a new issue