lkml.org 
[lkml]   [2017]   [Aug]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 06/12] x86/crypto: Fix RBP usage in sha1_avx2_x86_64_asm.S
    Date
    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>
    Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
    ---
    arch/x86/crypto/sha1_avx2_x86_64_asm.S | 4 +---
    1 file changed, 1 insertion(+), 3 deletions(-)

    diff --git a/arch/x86/crypto/sha1_avx2_x86_64_asm.S b/arch/x86/crypto/sha1_avx2_x86_64_asm.S
    index 1eab79c9ac48..9f712a7dfd79 100644
    --- a/arch/x86/crypto/sha1_avx2_x86_64_asm.S
    +++ b/arch/x86/crypto/sha1_avx2_x86_64_asm.S
    @@ -89,7 +89,7 @@
    #define REG_RE %rdx
    #define REG_RTA %r12
    #define REG_RTB %rbx
    -#define REG_T1 %ebp
    +#define REG_T1 %r11d
    #define xmm_mov vmovups
    #define avx2_zeroupper vzeroupper
    #define RND_F1 1
    @@ -637,7 +637,6 @@ _loop3:
    ENTRY(\name)

    push %rbx
    - push %rbp
    push %r12
    push %r13
    push %r14
    @@ -673,7 +672,6 @@ _loop3:
    pop %r14
    pop %r13
    pop %r12
    - pop %rbp
    pop %rbx

    ret
    --
    2.13.5
    \
     
     \ /
      Last update: 2017-08-29 20:08    [W:2.325 / U:0.124 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site