]> git.baikalelectronics.ru Git - kernel.git/commitdiff
sh: fix debug trap failure to process signals before return to user
authorRich Felker <dalias@libc.org>
Fri, 16 Mar 2018 00:01:36 +0000 (20:01 -0400)
committerRich Felker <dalias@libc.org>
Thu, 12 Apr 2018 23:47:52 +0000 (19:47 -0400)
When responding to a debug trap (breakpoint) in userspace, the
kernel's trap handler raised SIGTRAP but returned from the trap via a
code path that ignored pending signals, resulting in an infinite loop
re-executing the trapping instruction.

Signed-off-by: Rich Felker <dalias@libc.org>
arch/sh/kernel/entry-common.S

index c001f782c5f1c6320c89011d1bc3627f10bfb3ea..28cc61216b649773045d2eb16bdd997602ac9087 100644 (file)
@@ -255,7 +255,7 @@ debug_trap:
        mov.l   @r8, r8
        jsr     @r8
         nop
-       bra     __restore_all
+       bra     ret_from_exception
         nop
        CFI_ENDPROC