ptrace: introduce signal_wake_up_state() and ptrace_signal_wake_up()
Cleanup and preparation for the next change. signal_wake_up(resume => true) is overused. None of ptrace/jctl callers actually want to wakeup a TASK_WAKEKILL task, but they can't specify the necessary mask. Turn signal_wake_up() into signal_wake_up_state(state), reintroduce signal_wake_up() as a trivial helper, and add ptrace_signal_wake_up() which adds __TASK_TRACED. This way ptrace_signal_wake_up() can work "inside" ptrace_request() even if the tracee doesn't have the TASK_WAKEKILL bit set. Signed-off-by: Oleg Nesterov <oleg@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
9a9284153d
commit
910ffdb18a
3 changed files with 18 additions and 15 deletions
|
|
@ -2714,7 +2714,16 @@ static inline void thread_group_cputime_init(struct signal_struct *sig)
|
|||
extern void recalc_sigpending_and_wake(struct task_struct *t);
|
||||
extern void recalc_sigpending(void);
|
||||
|
||||
extern void signal_wake_up(struct task_struct *t, int resume_stopped);
|
||||
extern void signal_wake_up_state(struct task_struct *t, unsigned int state);
|
||||
|
||||
static inline void signal_wake_up(struct task_struct *t, bool resume)
|
||||
{
|
||||
signal_wake_up_state(t, resume ? TASK_WAKEKILL : 0);
|
||||
}
|
||||
static inline void ptrace_signal_wake_up(struct task_struct *t, bool resume)
|
||||
{
|
||||
signal_wake_up_state(t, resume ? __TASK_TRACED : 0);
|
||||
}
|
||||
|
||||
/*
|
||||
* Wrappers for p->thread_info->cpu access. No-op on UP.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue