Messages in this thread Patch in this message | | | Date | Wed, 25 May 2011 22:08:04 +0200 | From | Oleg Nesterov <> | Subject | [GIT PULL] PTRACE_KILL/wakeup fix for v2.6.40 |
| |
On 05/23, Oleg Nesterov wrote: > > On 05/23, Linus Torvalds wrote: > > > > Or a pull request .. > > Whatever is more convenient for you. If everyone agree with this change, > I'll add it to ptrace branch and send [GIT PULL] tomorrow.
OK, nobody replied, I assume there are no objections...
Please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/oleg/misc.git for-2.6.40
Oleg Nesterov (2): ptrace: ptrace_resume() shouldn't wake up !TASK_TRACED thread signal: sys_pause() should check signal_pending()
kernel/ptrace.c | 2 +- kernel/signal.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/kernel/ptrace.c b/kernel/ptrace.c index 7a81fc0..2df1157 100644 --- a/kernel/ptrace.c +++ b/kernel/ptrace.c @@ -562,7 +562,7 @@ static int ptrace_resume(struct task_struct *child, long request, } child->exit_code = data; - wake_up_process(child); + wake_up_state(child, __TASK_TRACED); return 0; } diff --git a/kernel/signal.c b/kernel/signal.c index ad5e818..86c32b8 100644 --- a/kernel/signal.c +++ b/kernel/signal.c @@ -3023,8 +3023,10 @@ SYSCALL_DEFINE2(signal, int, sig, __sighandler_t, handler) SYSCALL_DEFINE0(pause) { - current->state = TASK_INTERRUPTIBLE; - schedule(); + while (!signal_pending(current)) { + current->state = TASK_INTERRUPTIBLE; + schedule(); + } return -ERESTARTNOHAND; }
| |