lkml.org 
[lkml]   [2018]   [Feb]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.9 04/92] powerpc/64: Convert the syscall exit path to use RFI_TO_USER/KERNEL
    Date
    4.9-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Nicholas Piggin <npiggin@gmail.com>

    commit b8e90cb7bc04a509e821e82ab6ed7a8ef11ba333 upstream.

    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>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    arch/powerpc/kernel/entry_64.S | 12 +++++++++++-
    1 file changed, 11 insertions(+), 1 deletion(-)

    --- a/arch/powerpc/kernel/entry_64.S
    +++ b/arch/powerpc/kernel/entry_64.S
    @@ -251,13 +251,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 */

    syscall_error:

    \
     
     \ /
      Last update: 2018-02-09 15:18    [W:4.149 / U:0.056 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site