Lines Matching refs:t
56 static void __user *sig_handler(struct task_struct *t, int sig) in sig_handler() argument
58 return t->sighand->action[sig - 1].sa.sa_handler; in sig_handler()
68 static int sig_task_ignored(struct task_struct *t, int sig, bool force) in sig_task_ignored() argument
72 handler = sig_handler(t, sig); in sig_task_ignored()
74 if (unlikely(t->signal->flags & SIGNAL_UNKILLABLE) && in sig_task_ignored()
81 static int sig_ignored(struct task_struct *t, int sig, bool force) in sig_ignored() argument
88 if (sigismember(&t->blocked, sig) || sigismember(&t->real_blocked, sig)) in sig_ignored()
91 if (!sig_task_ignored(t, sig, force)) in sig_ignored()
97 return !t->ptrace; in sig_ignored()
132 static int recalc_sigpending_tsk(struct task_struct *t) in recalc_sigpending_tsk() argument
134 if ((t->jobctl & JOBCTL_PENDING_MASK) || in recalc_sigpending_tsk()
135 PENDING(&t->pending, &t->blocked) || in recalc_sigpending_tsk()
136 PENDING(&t->signal->shared_pending, &t->blocked)) { in recalc_sigpending_tsk()
137 set_tsk_thread_flag(t, TIF_SIGPENDING); in recalc_sigpending_tsk()
152 void recalc_sigpending_and_wake(struct task_struct *t) in recalc_sigpending_and_wake() argument
154 if (recalc_sigpending_tsk(t)) in recalc_sigpending_and_wake()
155 signal_wake_up(t, 0); in recalc_sigpending_and_wake()
361 __sigqueue_alloc(int sig, struct task_struct *t, gfp_t flags, int override_rlimit) in __sigqueue_alloc() argument
371 user = get_uid(__task_cred(t)->user); in __sigqueue_alloc()
377 task_rlimit(t, RLIMIT_SIGPENDING)) { in __sigqueue_alloc()
419 void __flush_signals(struct task_struct *t) in __flush_signals() argument
421 clear_tsk_thread_flag(t, TIF_SIGPENDING); in __flush_signals()
422 flush_sigqueue(&t->pending); in __flush_signals()
423 flush_sigqueue(&t->signal->shared_pending); in __flush_signals()
426 void flush_signals(struct task_struct *t) in flush_signals() argument
430 spin_lock_irqsave(&t->sighand->siglock, flags); in flush_signals()
431 __flush_signals(t); in flush_signals()
432 spin_unlock_irqrestore(&t->sighand->siglock, flags); in flush_signals()
469 void ignore_signals(struct task_struct *t) in ignore_signals() argument
474 t->sighand->action[i].sa.sa_handler = SIG_IGN; in ignore_signals()
476 flush_signals(t); in ignore_signals()
484 flush_signal_handlers(struct task_struct *t, int force_default) in flush_signal_handlers() argument
487 struct k_sigaction *ka = &t->sighand->action[0]; in flush_signal_handlers()
690 void signal_wake_up_state(struct task_struct *t, unsigned int state) in signal_wake_up_state() argument
692 set_tsk_thread_flag(t, TIF_SIGPENDING); in signal_wake_up_state()
700 if (!wake_up_state(t, state | TASK_INTERRUPTIBLE)) in signal_wake_up_state()
701 kick_process(t); in signal_wake_up_state()
743 static int kill_ok_by_cred(struct task_struct *t) in kill_ok_by_cred() argument
746 const struct cred *tcred = __task_cred(t); in kill_ok_by_cred()
765 struct task_struct *t) in check_kill_permission() argument
776 error = audit_signal_info(sig, t); /* Let audit system see the signal */ in check_kill_permission()
780 if (!same_thread_group(current, t) && in check_kill_permission()
781 !kill_ok_by_cred(t)) { in check_kill_permission()
784 sid = task_session(t); in check_kill_permission()
796 return security_task_kill(t, info, sig, 0); in check_kill_permission()
816 static void ptrace_trap_notify(struct task_struct *t) in ptrace_trap_notify() argument
818 WARN_ON_ONCE(!(t->ptrace & PT_SEIZED)); in ptrace_trap_notify()
819 assert_spin_locked(&t->sighand->siglock); in ptrace_trap_notify()
821 task_set_jobctl_pending(t, JOBCTL_TRAP_NOTIFY); in ptrace_trap_notify()
822 ptrace_signal_wake_up(t, t->jobctl & JOBCTL_LISTENING); in ptrace_trap_notify()
838 struct task_struct *t; in prepare_signal() local
853 for_each_thread(p, t) in prepare_signal()
854 flush_sigqueue_mask(&flush, &t->pending); in prepare_signal()
862 for_each_thread(p, t) { in prepare_signal()
863 flush_sigqueue_mask(&flush, &t->pending); in prepare_signal()
864 task_clear_jobctl_pending(t, JOBCTL_STOP_PENDING); in prepare_signal()
865 if (likely(!(t->ptrace & PT_SEIZED))) in prepare_signal()
866 wake_up_state(t, __TASK_STOPPED); in prepare_signal()
868 ptrace_trap_notify(t); in prepare_signal()
924 struct task_struct *t; in complete_signal() local
933 t = p; in complete_signal()
944 t = signal->curr_target; in complete_signal()
945 while (!wants_signal(sig, t)) { in complete_signal()
946 t = next_thread(t); in complete_signal()
947 if (t == signal->curr_target) in complete_signal()
955 signal->curr_target = t; in complete_signal()
964 !sigismember(&t->real_blocked, sig) && in complete_signal()
965 (sig == SIGKILL || !t->ptrace)) { in complete_signal()
979 t = p; in complete_signal()
981 task_clear_jobctl_pending(t, JOBCTL_PENDING_MASK); in complete_signal()
982 sigaddset(&t->pending.signal, SIGKILL); in complete_signal()
983 signal_wake_up(t, 1); in complete_signal()
984 } while_each_thread(p, t); in complete_signal()
993 signal_wake_up(t, sig == SIGKILL); in complete_signal()
1003 static inline void userns_fixup_signal_uid(struct siginfo *info, struct task_struct *t) in userns_fixup_signal_uid() argument
1005 if (current_user_ns() == task_cred_xxx(t, user_ns)) in userns_fixup_signal_uid()
1012 info->si_uid = from_kuid_munged(task_cred_xxx(t, user_ns), in userns_fixup_signal_uid()
1017 static inline void userns_fixup_signal_uid(struct siginfo *info, struct task_struct *t) in userns_fixup_signal_uid() argument
1023 static int __send_signal(int sig, struct siginfo *info, struct task_struct *t, in __send_signal() argument
1031 assert_spin_locked(&t->sighand->siglock); in __send_signal()
1034 if (!prepare_signal(sig, t, in __send_signal()
1038 pending = group ? &t->signal->shared_pending : &t->pending; in __send_signal()
1070 q = __sigqueue_alloc(sig, t, GFP_ATOMIC | __GFP_NOTRACK_FALSE_POSITIVE, in __send_signal()
1080 task_active_pid_ns(t)); in __send_signal()
1097 userns_fixup_signal_uid(&q->info, t); in __send_signal()
1119 signalfd_notify(t, sig); in __send_signal()
1121 complete_signal(sig, t, group); in __send_signal()
1123 trace_signal_generate(sig, info, t, group, result); in __send_signal()
1127 static int send_signal(int sig, struct siginfo *info, struct task_struct *t, in send_signal() argument
1134 !task_pid_nr_ns(current, task_active_pid_ns(t)); in send_signal()
1137 return __send_signal(sig, info, t, group, from_ancestor_ns); in send_signal()
1180 specific_send_sig_info(int sig, struct siginfo *info, struct task_struct *t) in specific_send_sig_info() argument
1182 return send_signal(sig, info, t, 0); in specific_send_sig_info()
1211 force_sig_info(int sig, struct siginfo *info, struct task_struct *t) in force_sig_info() argument
1217 spin_lock_irqsave(&t->sighand->siglock, flags); in force_sig_info()
1218 action = &t->sighand->action[sig-1]; in force_sig_info()
1220 blocked = sigismember(&t->blocked, sig); in force_sig_info()
1224 sigdelset(&t->blocked, sig); in force_sig_info()
1225 recalc_sigpending_and_wake(t); in force_sig_info()
1229 t->signal->flags &= ~SIGNAL_UNKILLABLE; in force_sig_info()
1230 ret = specific_send_sig_info(sig, info, t); in force_sig_info()
1231 spin_unlock_irqrestore(&t->sighand->siglock, flags); in force_sig_info()
1241 struct task_struct *t = p; in zap_other_threads() local
1246 while_each_thread(p, t) { in zap_other_threads()
1247 task_clear_jobctl_pending(t, JOBCTL_PENDING_MASK); in zap_other_threads()
1251 if (t->exit_state) in zap_other_threads()
1253 sigaddset(&t->pending.signal, SIGKILL); in zap_other_threads()
1254 signal_wake_up(t, 1); in zap_other_threads()
1572 int send_sigqueue(struct sigqueue *q, struct task_struct *t, int group) in send_sigqueue() argument
1582 if (!likely(lock_task_sighand(t, &flags))) in send_sigqueue()
1587 if (!prepare_signal(sig, t, false)) in send_sigqueue()
1603 signalfd_notify(t, sig); in send_sigqueue()
1604 pending = group ? &t->signal->shared_pending : &t->pending; in send_sigqueue()
1607 complete_signal(sig, t, group); in send_sigqueue()
1610 trace_signal_generate(sig, &q->info, t, group, result); in send_sigqueue()
1611 unlock_task_sighand(t, &flags); in send_sigqueue()
2004 struct task_struct *t; in do_signal_stop() local
2039 t = current; in do_signal_stop()
2040 while_each_thread(current, t) { in do_signal_stop()
2046 if (!task_is_stopped(t) && in do_signal_stop()
2047 task_set_jobctl_pending(t, signr | gstop)) { in do_signal_stop()
2049 if (likely(!(t->ptrace & PT_SEIZED))) in do_signal_stop()
2050 signal_wake_up(t, 0); in do_signal_stop()
2052 ptrace_trap_notify(t); in do_signal_stop()
2410 struct task_struct *t; in retarget_shared_pending() local
2416 t = tsk; in retarget_shared_pending()
2417 while_each_thread(tsk, t) { in retarget_shared_pending()
2418 if (t->flags & PF_EXITING) in retarget_shared_pending()
2421 if (!has_pending_signals(&retarget, &t->blocked)) in retarget_shared_pending()
2424 sigandsets(&retarget, &retarget, &t->blocked); in retarget_shared_pending()
2426 if (!signal_pending(t)) in retarget_shared_pending()
2427 signal_wake_up(t, 0); in retarget_shared_pending()
3103 struct task_struct *p = current, *t; in do_sigaction() local
3135 for_each_thread(p, t) in do_sigaction()
3136 flush_sigqueue_mask(&mask, &t->pending); in do_sigaction()
3223 struct task_struct *t = current; in __save_altstack() local
3224 return __put_user((void __user *)t->sas_ss_sp, &uss->ss_sp) | in __save_altstack()
3226 __put_user(t->sas_ss_size, &uss->ss_size); in __save_altstack()
3273 struct task_struct *t = current; in __compat_save_altstack() local
3274 return __put_user(ptr_to_compat((void __user *)t->sas_ss_sp), &uss->ss_sp) | in __compat_save_altstack()
3276 __put_user(t->sas_ss_size, &uss->ss_size); in __compat_save_altstack()
3648 kdb_send_sig_info(struct task_struct *t, struct siginfo *info) in kdb_send_sig_info() argument
3652 if (!spin_trylock(&t->sighand->siglock)) { in kdb_send_sig_info()
3658 spin_unlock(&t->sighand->siglock); in kdb_send_sig_info()
3659 new_t = kdb_prev_t != t; in kdb_send_sig_info()
3660 kdb_prev_t = t; in kdb_send_sig_info()
3661 if (t->state != TASK_RUNNING && new_t) { in kdb_send_sig_info()
3671 if (send_sig_info(sig, info, t)) in kdb_send_sig_info()
3673 sig, t->pid); in kdb_send_sig_info()
3675 kdb_printf("Signal %d is sent to process %d.\n", sig, t->pid); in kdb_send_sig_info()