Lines Matching refs:tsk

460 	struct task_struct *tsk = current;  in flush_itimer_signals()  local
463 spin_lock_irqsave(&tsk->sighand->siglock, flags); in flush_itimer_signals()
464 __flush_itimer_signals(&tsk->pending); in flush_itimer_signals()
465 __flush_itimer_signals(&tsk->signal->shared_pending); in flush_itimer_signals()
466 spin_unlock_irqrestore(&tsk->sighand->siglock, flags); in flush_itimer_signals()
500 int unhandled_signal(struct task_struct *tsk, int sig) in unhandled_signal() argument
502 void __user *handler = tsk->sighand->action[sig-1].sa.sa_handler; in unhandled_signal()
503 if (is_global_init(tsk)) in unhandled_signal()
508 return !tsk->ptrace; in unhandled_signal()
610 int dequeue_signal(struct task_struct *tsk, sigset_t *mask, siginfo_t *info) in dequeue_signal() argument
617 signr = __dequeue_signal(&tsk->pending, mask, info); in dequeue_signal()
619 signr = __dequeue_signal(&tsk->signal->shared_pending, in dequeue_signal()
635 struct hrtimer *tmr = &tsk->signal->real_timer; in dequeue_signal()
638 tsk->signal->it_real_incr.tv64 != 0) { in dequeue_signal()
640 tsk->signal->it_real_incr); in dequeue_signal()
672 spin_unlock(&tsk->sighand->siglock); in dequeue_signal()
674 spin_lock(&tsk->sighand->siglock); in dequeue_signal()
1260 struct sighand_struct *__lock_task_sighand(struct task_struct *tsk, in __lock_task_sighand() argument
1272 sighand = rcu_dereference(tsk->sighand); in __lock_task_sighand()
1290 if (likely(sighand == tsk->sighand)) { in __lock_task_sighand()
1623 bool do_notify_parent(struct task_struct *tsk, int sig) in do_notify_parent() argument
1634 BUG_ON(task_is_stopped_or_traced(tsk)); in do_notify_parent()
1636 BUG_ON(!tsk->ptrace && in do_notify_parent()
1637 (tsk->group_leader != tsk || !thread_group_empty(tsk))); in do_notify_parent()
1644 if (tsk->parent_exec_id != tsk->parent->self_exec_id) in do_notify_parent()
1662 info.si_pid = task_pid_nr_ns(tsk, task_active_pid_ns(tsk->parent)); in do_notify_parent()
1663 info.si_uid = from_kuid_munged(task_cred_xxx(tsk->parent, user_ns), in do_notify_parent()
1664 task_uid(tsk)); in do_notify_parent()
1667 task_cputime(tsk, &utime, &stime); in do_notify_parent()
1668 info.si_utime = cputime_to_clock_t(utime + tsk->signal->utime); in do_notify_parent()
1669 info.si_stime = cputime_to_clock_t(stime + tsk->signal->stime); in do_notify_parent()
1671 info.si_status = tsk->exit_code & 0x7f; in do_notify_parent()
1672 if (tsk->exit_code & 0x80) in do_notify_parent()
1674 else if (tsk->exit_code & 0x7f) in do_notify_parent()
1678 info.si_status = tsk->exit_code >> 8; in do_notify_parent()
1681 psig = tsk->parent->sighand; in do_notify_parent()
1683 if (!tsk->ptrace && sig == SIGCHLD && in do_notify_parent()
1706 __group_send_sig_info(sig, &info, tsk->parent); in do_notify_parent()
1707 __wake_up_parent(tsk, tsk->parent); in do_notify_parent()
1726 static void do_notify_parent_cldstop(struct task_struct *tsk, in do_notify_parent_cldstop() argument
1736 parent = tsk->parent; in do_notify_parent_cldstop()
1738 tsk = tsk->group_leader; in do_notify_parent_cldstop()
1739 parent = tsk->real_parent; in do_notify_parent_cldstop()
1748 info.si_pid = task_pid_nr_ns(tsk, task_active_pid_ns(parent)); in do_notify_parent_cldstop()
1749 info.si_uid = from_kuid_munged(task_cred_xxx(parent, user_ns), task_uid(tsk)); in do_notify_parent_cldstop()
1752 task_cputime(tsk, &utime, &stime); in do_notify_parent_cldstop()
1762 info.si_status = tsk->signal->group_exit_code & 0x7f; in do_notify_parent_cldstop()
1765 info.si_status = tsk->exit_code & 0x7f; in do_notify_parent_cldstop()
1779 __wake_up_parent(tsk, parent); in do_notify_parent_cldstop()
1811 static int sigkill_pending(struct task_struct *tsk) in sigkill_pending() argument
1813 return sigismember(&tsk->pending.signal, SIGKILL) || in sigkill_pending()
1814 sigismember(&tsk->signal->shared_pending.signal, SIGKILL); in sigkill_pending()
2407 static void retarget_shared_pending(struct task_struct *tsk, sigset_t *which) in retarget_shared_pending() argument
2412 sigandsets(&retarget, &tsk->signal->shared_pending.signal, which); in retarget_shared_pending()
2416 t = tsk; in retarget_shared_pending()
2417 while_each_thread(tsk, t) { in retarget_shared_pending()
2434 void exit_signals(struct task_struct *tsk) in exit_signals() argument
2443 threadgroup_change_begin(tsk); in exit_signals()
2445 if (thread_group_empty(tsk) || signal_group_exit(tsk->signal)) { in exit_signals()
2446 tsk->flags |= PF_EXITING; in exit_signals()
2447 threadgroup_change_end(tsk); in exit_signals()
2451 spin_lock_irq(&tsk->sighand->siglock); in exit_signals()
2456 tsk->flags |= PF_EXITING; in exit_signals()
2458 threadgroup_change_end(tsk); in exit_signals()
2460 if (!signal_pending(tsk)) in exit_signals()
2463 unblocked = tsk->blocked; in exit_signals()
2465 retarget_shared_pending(tsk, &unblocked); in exit_signals()
2467 if (unlikely(tsk->jobctl & JOBCTL_STOP_PENDING) && in exit_signals()
2468 task_participate_group_stop(tsk)) in exit_signals()
2471 spin_unlock_irq(&tsk->sighand->siglock); in exit_signals()
2479 do_notify_parent_cldstop(tsk, false, group_stop); in exit_signals()
2513 static void __set_task_blocked(struct task_struct *tsk, const sigset_t *newset) in __set_task_blocked() argument
2515 if (signal_pending(tsk) && !thread_group_empty(tsk)) { in __set_task_blocked()
2519 retarget_shared_pending(tsk, &newblocked); in __set_task_blocked()
2521 tsk->blocked = *newset; in __set_task_blocked()
2540 struct task_struct *tsk = current; in __set_current_blocked() local
2542 spin_lock_irq(&tsk->sighand->siglock); in __set_current_blocked()
2543 __set_task_blocked(tsk, newset); in __set_current_blocked()
2544 spin_unlock_irq(&tsk->sighand->siglock); in __set_current_blocked()
2557 struct task_struct *tsk = current; in sigprocmask() local
2562 *oldset = tsk->blocked; in sigprocmask()
2566 sigorsets(&newset, &tsk->blocked, set); in sigprocmask()
2569 sigandnsets(&newset, &tsk->blocked, set); in sigprocmask()
2806 struct task_struct *tsk = current; in do_sigtimedwait() local
2829 spin_lock_irq(&tsk->sighand->siglock); in do_sigtimedwait()
2830 sig = dequeue_signal(tsk, &mask, info); in do_sigtimedwait()
2838 tsk->real_blocked = tsk->blocked; in do_sigtimedwait()
2839 sigandsets(&tsk->blocked, &tsk->blocked, &mask); in do_sigtimedwait()
2841 spin_unlock_irq(&tsk->sighand->siglock); in do_sigtimedwait()
2845 spin_lock_irq(&tsk->sighand->siglock); in do_sigtimedwait()
2846 __set_task_blocked(tsk, &tsk->real_blocked); in do_sigtimedwait()
2847 sigemptyset(&tsk->real_blocked); in do_sigtimedwait()
2848 sig = dequeue_signal(tsk, &mask, info); in do_sigtimedwait()
2850 spin_unlock_irq(&tsk->sighand->siglock); in do_sigtimedwait()