| From foo@baz Sun May 27 17:33:38 CEST 2018 |
| From: Rich Felker <dalias@libc.org> |
| Date: Thu, 15 Mar 2018 20:01:36 -0400 |
| Subject: sh: fix debug trap failure to process signals before return to user |
| |
| From: Rich Felker <dalias@libc.org> |
| |
| [ Upstream commit 96a598996f6ac518ac79839ecbb17c91af91f4f7 ] |
| |
| 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> |
| Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| arch/sh/kernel/entry-common.S | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/arch/sh/kernel/entry-common.S |
| +++ b/arch/sh/kernel/entry-common.S |
| @@ -255,7 +255,7 @@ debug_trap: |
| mov.l @r8, r8 |
| jsr @r8 |
| nop |
| - bra __restore_all |
| + bra ret_from_exception |
| nop |
| CFI_ENDPROC |
| |