lkml.org 
[lkml]   [2018]   [Jan]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 04/11] powerpc/64: Convert the syscall exit path to use RFI_TO_USER/KERNEL
    Date
    From: Nicholas Piggin <npiggin@gmail.com>

    In the syscall exit path we may be returning to user or kernel
    context. We already have a test for that, because we conditionally
    restore r13. So use that existing test and branch, and bifurcate the
    return based on that.

    Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    ---
    arch/powerpc/kernel/entry_64.S | 12 +++++++++++-
    1 file changed, 11 insertions(+), 1 deletion(-)

    diff --git a/arch/powerpc/kernel/entry_64.S b/arch/powerpc/kernel/entry_64.S
    index 567d8f487f2f..b20c6cb0fa7f 100644
    --- a/arch/powerpc/kernel/entry_64.S
    +++ b/arch/powerpc/kernel/entry_64.S
    @@ -267,13 +267,23 @@ BEGIN_FTR_SECTION
    END_FTR_SECTION_IFSET(CPU_FTR_HAS_PPR)

    ld r13,GPR13(r1) /* only restore r13 if returning to usermode */
    + ld r2,GPR2(r1)
    + ld r1,GPR1(r1)
    + mtlr r4
    + mtcr r5
    + mtspr SPRN_SRR0,r7
    + mtspr SPRN_SRR1,r8
    + RFI_TO_USER
    + b . /* prevent speculative execution */
    +
    + /* exit to kernel */
    1: ld r2,GPR2(r1)
    ld r1,GPR1(r1)
    mtlr r4
    mtcr r5
    mtspr SPRN_SRR0,r7
    mtspr SPRN_SRR1,r8
    - RFI
    + RFI_TO_KERNEL
    b . /* prevent speculative execution */

    .Lsyscall_error:
    --
    2.14.3
    \
     
     \ /
      Last update: 2018-01-14 23:17    [W:4.055 / U:0.064 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site