diff options
author | Josh Poimboeuf <jpoimboe@redhat.com> | 2021-02-24 10:29:17 -0600 |
---|---|---|
committer | Josh Poimboeuf <jpoimboe@redhat.com> | 2021-04-19 12:36:34 -0500 |
commit | e163be86fff3deec70f63330fc43fedf892c9aee (patch) | |
tree | 1358f6c67542b507303c4de26e40e521edaf65e5 /arch | |
parent | ff5796b6dbea4763fdca002101e32b60aa17f8e8 (diff) | |
download | linux-stable-e163be86fff3deec70f63330fc43fedf892c9aee.tar.gz linux-stable-e163be86fff3deec70f63330fc43fedf892c9aee.tar.bz2 linux-stable-e163be86fff3deec70f63330fc43fedf892c9aee.zip |
x86/crypto/aesni-intel_avx: Standardize stack alignment prologue
Use RBP instead of R14 for saving the old stack pointer before
realignment. This resembles what compilers normally do.
This enables ORC unwinding by allowing objtool to understand the stack
realignment.
Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
Tested-by: Ard Biesheuvel <ardb@kernel.org>
Acked-by: Ard Biesheuvel <ardb@kernel.org>
Tested-by: Sami Tolvanen <samitolvanen@google.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
Link: https://lore.kernel.org/r/02d00a0903a0959f4787e186e2a07d271e1f63d4.1614182415.git.jpoimboe@redhat.com
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/crypto/aesni-intel_avx-x86_64.S | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/arch/x86/crypto/aesni-intel_avx-x86_64.S b/arch/x86/crypto/aesni-intel_avx-x86_64.S index 188f1848a730..98e3552b6e03 100644 --- a/arch/x86/crypto/aesni-intel_avx-x86_64.S +++ b/arch/x86/crypto/aesni-intel_avx-x86_64.S @@ -251,22 +251,20 @@ VARIABLE_OFFSET = 16*8 .macro FUNC_SAVE push %r12 push %r13 - push %r14 push %r15 - mov %rsp, %r14 - - + push %rbp + mov %rsp, %rbp sub $VARIABLE_OFFSET, %rsp and $~63, %rsp # align rsp to 64 bytes .endm .macro FUNC_RESTORE - mov %r14, %rsp + mov %rbp, %rsp + pop %rbp pop %r15 - pop %r14 pop %r13 pop %r12 .endm |