• Vineet Gupta's avatar
    ARC: entry: fix potential EFA clobber when TIF_SYSCALL_TRACE · 01b636cb
    Vineet Gupta authored
    commit 00fdec98 upstream.
    
    Trap handler for syscall tracing reads EFA (Exception Fault Address),
    in case strace wants PC of trap instruction (EFA is not part of pt_regs
    as of current code).
    
    However this EFA read is racy as it happens after dropping to pure
    kernel mode (re-enabling interrupts). A taken interrupt could
    context-switch, trigger a different task's trap, clobbering EFA for this
    execution context.
    
    Fix this by reading EFA early, before re-enabling interrupts. A slight
    side benefit is de-duplication of FAKE_RET_FROM_EXCPN in trap handler.
    The trap handler is common to both ARCompact and ARCv2 builds too.
    
    This just came out of code rework/review and no real problem was reported
    but is clearly a potential problem specially for strace.
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: default avatarVineet Gupta <vgupta@synopsys.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    01b636cb
entry.S 9.74 KB