| From: "Eric W. Biederman" <ebiederm@xmission.com> |
| Date: Fri, 20 Apr 2018 09:14:56 -0500 |
| Subject: signal/xtensa: Consistenly use SIGBUS in do_unaligned_user |
| |
| commit 7de712ccc096b81d23cc0a941cd9b8cb3956605d upstream. |
| |
| While working on changing this code to use force_sig_fault I |
| discovered that do_unaliged_user is sets si_signo to SIGBUS and passes |
| SIGSEGV to force_sig_info. Which is just b0rked. |
| |
| The code is reporting a SIGBUS error so replace the SIGSEGV with SIGBUS. |
| |
| Cc: Chris Zankel <chris@zankel.net> |
| Cc: Max Filippov <jcmvbkbc@gmail.com> |
| Cc: linux-xtensa@linux-xtensa.org |
| Acked-by: Max Filippov <jcmvbkbc@gmail.com> |
| Fixes: 5a0015d62668 ("[PATCH] xtensa: Architecture support for Tensilica Xtensa Part 3") |
| Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com> |
| Signed-off-by: Ben Hutchings <ben@decadent.org.uk> |
| --- |
| arch/xtensa/kernel/traps.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/arch/xtensa/kernel/traps.c |
| +++ b/arch/xtensa/kernel/traps.c |
| @@ -282,7 +282,7 @@ do_unaligned_user (struct pt_regs *regs) |
| info.si_errno = 0; |
| info.si_code = BUS_ADRALN; |
| info.si_addr = (void *) regs->excvaddr; |
| - force_sig_info(SIGSEGV, &info, current); |
| + force_sig_info(SIGBUS, &info, current); |
| |
| } |
| #endif |