Merge branch 'for-2.6.40' of git://git.kernel.org/pub/scm/linux/kernel/git/oleg/misc

* 'for-2.6.40' of git://git.kernel.org/pub/scm/linux/kernel/git/oleg/misc:
  signal: sys_pause() should check signal_pending()
  ptrace: ptrace_resume() shouldn't wake up !TASK_TRACED thread
This commit is contained in:
Linus Torvalds
2011-05-25 16:53:14 -07:00
2 changed files with 5 additions and 3 deletions

View File

@@ -562,7 +562,7 @@ static int ptrace_resume(struct task_struct *child, long request,
} }
child->exit_code = data; child->exit_code = data;
wake_up_process(child); wake_up_state(child, __TASK_TRACED);
return 0; return 0;
} }

View File

@@ -3023,8 +3023,10 @@ SYSCALL_DEFINE2(signal, int, sig, __sighandler_t, handler)
SYSCALL_DEFINE0(pause) SYSCALL_DEFINE0(pause)
{ {
current->state = TASK_INTERRUPTIBLE; while (!signal_pending(current)) {
schedule(); current->state = TASK_INTERRUPTIBLE;
schedule();
}
return -ERESTARTNOHAND; return -ERESTARTNOHAND;
} }