summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorKyle McMartin <kyle@redhat.com>2010-02-12 10:53:08 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2010-02-12 08:51:58 -0800
commit22a8cdd60339d931d0dca54427712b2714e5ba8b (patch)
treee174e2a8e9a1c8968b6d1cabf3f1010f2bb9e306 /arch
parent0e9695d9a45e9ea643f2f4e7f2859876940c58ae (diff)
downloadlwn-22a8cdd60339d931d0dca54427712b2714e5ba8b.tar.gz
lwn-22a8cdd60339d931d0dca54427712b2714e5ba8b.zip
parisc: fix tracing of signals
Mike Frysinger pointed out that calling tracehook_signal_handler with stepping=0 missed testing the thread flags, resulting in not calling ptrace_notify. Fix this by testing if we're single stepping or branch stepping and setting the flag accordingly. Tested, seems to work. Reported-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Kyle McMartin <kyle@mcmartin.ca> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/parisc/kernel/signal.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/parisc/kernel/signal.c b/arch/parisc/kernel/signal.c
index fb37ac52e46c..35c827e94e31 100644
--- a/arch/parisc/kernel/signal.c
+++ b/arch/parisc/kernel/signal.c
@@ -468,7 +468,9 @@ handle_signal(unsigned long sig, siginfo_t *info, struct k_sigaction *ka,
recalc_sigpending();
spin_unlock_irq(&current->sighand->siglock);
- tracehook_signal_handler(sig, info, ka, regs, 0);
+ tracehook_signal_handler(sig, info, ka, regs,
+ test_thread_flag(TIF_SINGLESTEP) ||
+ test_thread_flag(TIF_BLOCKSTEP));
return 1;
}