lkml.org 
[lkml]   [2019]   [Nov]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 21/35] powerpc/64s/exception: soft nmi interrupt should not use ret_from_except
    Date
    From: Nicholas Piggin <npiggin@gmail.com>

    The soft nmi handler does not reconcile interrupt state, so it should
    not return via the normal ret_from_except path. Return like other NMIs,
    using the EXCEPTION_RESTORE_REGS macro.

    This becomes important when the scv interrupt is implemented, which
    must handle soft-masked interrupts that have r13 set to something other
    than the PACA -- returning to kernel in this case must restore r13.

    Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
    ---
    arch/powerpc/kernel/exceptions-64s.S | 6 +++++-
    1 file changed, 5 insertions(+), 1 deletion(-)

    diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S
    index 38bc66b95516..af1264cd005f 100644
    --- a/arch/powerpc/kernel/exceptions-64s.S
    +++ b/arch/powerpc/kernel/exceptions-64s.S
    @@ -2740,7 +2740,11 @@ EXC_COMMON_BEGIN(soft_nmi_common)
    bl save_nvgprs
    addi r3,r1,STACK_FRAME_OVERHEAD
    bl soft_nmi_interrupt
    - b ret_from_except
    + /* Clear MSR_RI before setting SRR0 and SRR1. */
    + li r9,0
    + mtmsrd r9,1
    + EXCEPTION_RESTORE_REGS hsrr=0
    + RFI_TO_KERNEL

    #endif /* CONFIG_PPC_WATCHDOG */

    --
    2.23.0
    \
     
     \ /
      Last update: 2019-11-26 21:15    [W:4.786 / U:0.068 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site