lkml.org 
[lkml]   [2019]   [Oct]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: [PATCH 14/18] arm64: efi: restore x18 if it was corrupted
    On Fri, 18 Oct 2019 at 18:11, Sami Tolvanen <samitolvanen@google.com> wrote:
    >
    > If we detect a corrupted x18 and SCS is enabled, restore the register
    > before jumping back to instrumented code.
    >

    You'll have to elaborate a bit here and explain that this is
    sufficient, given that we run EFI runtime services with interrupts
    enabled.

    > 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-21 08:21    [W:2.310 / U:0.712 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site