summaryrefslogtreecommitdiffstats
path: root/arch/sh/kernel/signal_64.c
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2010-02-15 14:17:45 +0900
committerPaul Mundt <lethal@linux-sh.org>2010-02-15 14:17:45 +0900
commit4b505db9c4c72dbd2a8e66b8d681640101325af6 (patch)
treeedf6aed9194684935e8f88b9501ae3f4ed33f54d /arch/sh/kernel/signal_64.c
parent724e6d3fe8003c3f60bf404bf22e4e331327c596 (diff)
downloadlinux-stable-4b505db9c4c72dbd2a8e66b8d681640101325af6.tar.gz
linux-stable-4b505db9c4c72dbd2a8e66b8d681640101325af6.tar.bz2
linux-stable-4b505db9c4c72dbd2a8e66b8d681640101325af6.zip
sh64: fix tracing of signals.
This follows the parisc change to ensure that tracehook_signal_handler() is aware of when we are single-stepping in order to ptrace_notify() appropriately. While this was implemented for 32-bit SH, sh64 neglected to make use of TIF_SINGLESTEP when it was folded in with the 32-bit code, resulting in ptrace_notify() never being called. As sh64 uses all of the other abstractions already, this simply plugs in the thread flag in the appropriate enable/disable paths and fixes up the tracehook notification accordingly. With this in place, sh64 is brought in line with what 32-bit is already doing. Reported-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/kernel/signal_64.c')
-rw-r--r--arch/sh/kernel/signal_64.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/sh/kernel/signal_64.c b/arch/sh/kernel/signal_64.c
index ce76dbdef294..580e97d46ca5 100644
--- a/arch/sh/kernel/signal_64.c
+++ b/arch/sh/kernel/signal_64.c
@@ -118,7 +118,9 @@ static int do_signal(struct pt_regs *regs, sigset_t *oldset)
* clear the TS_RESTORE_SIGMASK flag.
*/
current_thread_info()->status &= ~TS_RESTORE_SIGMASK;
- tracehook_signal_handler(signr, &info, &ka, regs, 0);
+
+ tracehook_signal_handler(signr, &info, &ka, regs,
+ test_thread_flag(TIF_SINGLESTEP));
return 1;
}
}