diff options
author | Kyle McMartin <kyle@redhat.com> | 2010-02-12 10:53:08 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-02-12 08:51:58 -0800 |
commit | 22a8cdd60339d931d0dca54427712b2714e5ba8b (patch) | |
tree | e174e2a8e9a1c8968b6d1cabf3f1010f2bb9e306 /arch | |
parent | 0e9695d9a45e9ea643f2f4e7f2859876940c58ae (diff) | |
download | lwn-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.c | 4 |
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(¤t->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; } |