summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorMichal Simek <monstr@monstr.eu>2009-10-15 11:32:25 +0200
committerMichal Simek <monstr@monstr.eu>2009-12-14 08:44:58 +0100
commita01523cdcd2439b553086127be3d30ac9c3cb651 (patch)
tree66ef137a4a495b0749b12178e5d0757b1ebd4742 /arch
parente051af576a414b6fcfe6589e99b2357522718050 (diff)
downloadlinux-stable-a01523cdcd2439b553086127be3d30ac9c3cb651.tar.gz
linux-stable-a01523cdcd2439b553086127be3d30ac9c3cb651.tar.bz2
linux-stable-a01523cdcd2439b553086127be3d30ac9c3cb651.zip
microblaze: Ptrace notifying from signal code
After the signal frame is set up on the userspace stack, ptrace() should be given an opportunity to single-step into the signal handler FRV, Blackfin, mn10300 and UM. Worth to look at that patches. Signed-off-by: Michal Simek <monstr@monstr.eu>
Diffstat (limited to 'arch')
-rw-r--r--arch/microblaze/kernel/signal.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/microblaze/kernel/signal.c b/arch/microblaze/kernel/signal.c
index 1c80e4fc40ce..0c96ac34c316 100644
--- a/arch/microblaze/kernel/signal.c
+++ b/arch/microblaze/kernel/signal.c
@@ -233,6 +233,10 @@ static void setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
set_fs(USER_DS);
+ /* the tracer may want to single-step inside the handler */
+ if (test_thread_flag(TIF_SINGLESTEP))
+ ptrace_notify(SIGTRAP);
+
#ifdef DEBUG_SIG
printk(KERN_INFO "SIG deliver (%s:%d): sp=%p pc=%08lx\n",
current->comm, current->pid, frame, regs->pc);