Commit a134d228 authored by Chris Metcalf's avatar Chris Metcalf

arch/tile: apply commit 74fca9da to the compat signal handling as well

This passes siginfo and mcontext to tilegx32 signal handlers that
don't have SA_SIGINFO set just as we have been doing for tilegx64.

Cc: stable@vger.kernel.org
Signed-off-by: default avatarChris Metcalf <cmetcalf@tilera.com>
parent fc327e26
...@@ -403,19 +403,17 @@ int compat_setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, ...@@ -403,19 +403,17 @@ int compat_setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
* Set up registers for signal handler. * Set up registers for signal handler.
* Registers that we don't modify keep the value they had from * Registers that we don't modify keep the value they had from
* user-space at the time we took the signal. * user-space at the time we took the signal.
* We always pass siginfo and mcontext, regardless of SA_SIGINFO,
* since some things rely on this (e.g. glibc's debug/segfault.c).
*/ */
regs->pc = ptr_to_compat_reg(ka->sa.sa_handler); regs->pc = ptr_to_compat_reg(ka->sa.sa_handler);
regs->ex1 = PL_ICS_EX1(USER_PL, 1); /* set crit sec in handler */ regs->ex1 = PL_ICS_EX1(USER_PL, 1); /* set crit sec in handler */
regs->sp = ptr_to_compat_reg(frame); regs->sp = ptr_to_compat_reg(frame);
regs->lr = restorer; regs->lr = restorer;
regs->regs[0] = (unsigned long) usig; regs->regs[0] = (unsigned long) usig;
regs->regs[1] = ptr_to_compat_reg(&frame->info);
if (ka->sa.sa_flags & SA_SIGINFO) { regs->regs[2] = ptr_to_compat_reg(&frame->uc);
/* Need extra arguments, so mark to restore caller-saves. */ regs->flags |= PT_FLAGS_CALLER_SAVES;
regs->regs[1] = ptr_to_compat_reg(&frame->info);
regs->regs[2] = ptr_to_compat_reg(&frame->uc);
regs->flags |= PT_FLAGS_CALLER_SAVES;
}
/* /*
* Notify any tracer that was single-stepping it. * Notify any tracer that was single-stepping it.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment