lkml.org 
[lkml]   [2019]   [Oct]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    Subject[PATCH 14/18] arm64: efi: restore x18 if it was corrupted
    From
    If we detect a corrupted x18 and SCS is enabled, restore the register
    before jumping back to instrumented code.

    Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
    ---
    arch/arm64/kernel/efi-rt-wrapper.S | 7 ++++++-
    1 file changed, 6 insertions(+), 1 deletion(-)

    diff --git a/arch/arm64/kernel/efi-rt-wrapper.S b/arch/arm64/kernel/efi-rt-wrapper.S
    index 3fc71106cb2b..945744f16086 100644
    --- a/arch/arm64/kernel/efi-rt-wrapper.S
    +++ b/arch/arm64/kernel/efi-rt-wrapper.S
    @@ -34,5 +34,10 @@ ENTRY(__efi_rt_asm_wrapper)
    ldp x29, x30, [sp], #32
    b.ne 0f
    ret
    -0: b efi_handle_corrupted_x18 // tail call
    +0:
    +#ifdef CONFIG_SHADOW_CALL_STACK
    + /* Restore x18 before returning to instrumented code. */
    + mov x18, x2
    +#endif
    + b efi_handle_corrupted_x18 // tail call
    ENDPROC(__efi_rt_asm_wrapper)
    --
    2.23.0.866.gb869b98d4c-goog
    \
     
     \ /
      Last update: 2019-10-18 18:12    [W:4.184 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site