Lines Matching refs:t
67 static void __user *sig_handler(struct task_struct *t, int sig) in sig_handler() argument
69 return t->sighand->action[sig - 1].sa.sa_handler; in sig_handler()
79 static bool sig_task_ignored(struct task_struct *t, int sig, bool force) in sig_task_ignored() argument
83 handler = sig_handler(t, sig); in sig_task_ignored()
86 if (unlikely(is_global_init(t) && sig_kernel_only(sig))) in sig_task_ignored()
89 if (unlikely(t->signal->flags & SIGNAL_UNKILLABLE) && in sig_task_ignored()
94 if (unlikely((t->flags & PF_KTHREAD) && in sig_task_ignored()
101 static bool sig_ignored(struct task_struct *t, int sig, bool force) in sig_ignored() argument
108 if (sigismember(&t->blocked, sig) || sigismember(&t->real_blocked, sig)) in sig_ignored()
116 if (t->ptrace && sig != SIGKILL) in sig_ignored()
119 return sig_task_ignored(t, sig, force); in sig_ignored()
154 static bool recalc_sigpending_tsk(struct task_struct *t) in recalc_sigpending_tsk() argument
156 if ((t->jobctl & (JOBCTL_PENDING_MASK | JOBCTL_TRAP_FREEZE)) || in recalc_sigpending_tsk()
157 PENDING(&t->pending, &t->blocked) || in recalc_sigpending_tsk()
158 PENDING(&t->signal->shared_pending, &t->blocked) || in recalc_sigpending_tsk()
159 cgroup_task_frozen(t)) { in recalc_sigpending_tsk()
160 set_tsk_thread_flag(t, TIF_SIGPENDING); in recalc_sigpending_tsk()
176 void recalc_sigpending_and_wake(struct task_struct *t) in recalc_sigpending_and_wake() argument
178 if (recalc_sigpending_tsk(t)) in recalc_sigpending_and_wake()
179 signal_wake_up(t, 0); in recalc_sigpending_and_wake()
412 __sigqueue_alloc(int sig, struct task_struct *t, gfp_t flags, int override_rlimit) in __sigqueue_alloc() argument
422 user = get_uid(__task_cred(t)->user); in __sigqueue_alloc()
428 task_rlimit(t, RLIMIT_SIGPENDING)) { in __sigqueue_alloc()
470 void flush_signals(struct task_struct *t) in flush_signals() argument
474 spin_lock_irqsave(&t->sighand->siglock, flags); in flush_signals()
475 clear_tsk_thread_flag(t, TIF_SIGPENDING); in flush_signals()
476 flush_sigqueue(&t->pending); in flush_signals()
477 flush_sigqueue(&t->signal->shared_pending); in flush_signals()
478 spin_unlock_irqrestore(&t->sighand->siglock, flags); in flush_signals()
518 void ignore_signals(struct task_struct *t) in ignore_signals() argument
523 t->sighand->action[i].sa.sa_handler = SIG_IGN; in ignore_signals()
525 flush_signals(t); in ignore_signals()
533 flush_signal_handlers(struct task_struct *t, int force_default) in flush_signal_handlers() argument
536 struct k_sigaction *ka = &t->sighand->action[0]; in flush_signal_handlers()
754 void signal_wake_up_state(struct task_struct *t, unsigned int state) in signal_wake_up_state() argument
756 set_tsk_thread_flag(t, TIF_SIGPENDING); in signal_wake_up_state()
764 if (!wake_up_state(t, state | TASK_INTERRUPTIBLE)) in signal_wake_up_state()
765 kick_process(t); in signal_wake_up_state()
806 static bool kill_ok_by_cred(struct task_struct *t) in kill_ok_by_cred() argument
809 const struct cred *tcred = __task_cred(t); in kill_ok_by_cred()
823 struct task_struct *t) in check_kill_permission() argument
834 error = audit_signal_info(sig, t); /* Let audit system see the signal */ in check_kill_permission()
838 if (!same_thread_group(current, t) && in check_kill_permission()
839 !kill_ok_by_cred(t)) { in check_kill_permission()
842 sid = task_session(t); in check_kill_permission()
855 return security_task_kill(t, info, sig, NULL); in check_kill_permission()
875 static void ptrace_trap_notify(struct task_struct *t) in ptrace_trap_notify() argument
877 WARN_ON_ONCE(!(t->ptrace & PT_SEIZED)); in ptrace_trap_notify()
878 assert_spin_locked(&t->sighand->siglock); in ptrace_trap_notify()
880 task_set_jobctl_pending(t, JOBCTL_TRAP_NOTIFY); in ptrace_trap_notify()
881 ptrace_signal_wake_up(t, t->jobctl & JOBCTL_LISTENING); in ptrace_trap_notify()
897 struct task_struct *t; in prepare_signal() local
912 for_each_thread(p, t) in prepare_signal()
913 flush_sigqueue_mask(&flush, &t->pending); in prepare_signal()
921 for_each_thread(p, t) { in prepare_signal()
922 flush_sigqueue_mask(&flush, &t->pending); in prepare_signal()
923 task_clear_jobctl_pending(t, JOBCTL_STOP_PENDING); in prepare_signal()
924 if (likely(!(t->ptrace & PT_SEIZED))) in prepare_signal()
925 wake_up_state(t, __TASK_STOPPED); in prepare_signal()
927 ptrace_trap_notify(t); in prepare_signal()
987 struct task_struct *t; in complete_signal() local
996 t = p; in complete_signal()
1007 t = signal->curr_target; in complete_signal()
1008 while (!wants_signal(sig, t)) { in complete_signal()
1009 t = next_thread(t); in complete_signal()
1010 if (t == signal->curr_target) in complete_signal()
1018 signal->curr_target = t; in complete_signal()
1027 !sigismember(&t->real_blocked, sig) && in complete_signal()
1042 t = p; in complete_signal()
1044 task_clear_jobctl_pending(t, JOBCTL_PENDING_MASK); in complete_signal()
1045 sigaddset(&t->pending.signal, SIGKILL); in complete_signal()
1046 signal_wake_up(t, 1); in complete_signal()
1047 } while_each_thread(p, t); in complete_signal()
1056 signal_wake_up(t, sig == SIGKILL); in complete_signal()
1065 static int __send_signal(int sig, struct kernel_siginfo *info, struct task_struct *t, in __send_signal() argument
1073 assert_spin_locked(&t->sighand->siglock); in __send_signal()
1076 if (!prepare_signal(sig, t, force)) in __send_signal()
1079 pending = (type != PIDTYPE_PID) ? &t->signal->shared_pending : &t->pending; in __send_signal()
1093 if ((sig == SIGKILL) || (t->flags & PF_KTHREAD)) in __send_signal()
1110 q = __sigqueue_alloc(sig, t, GFP_ATOMIC, override_rlimit); in __send_signal()
1120 task_active_pid_ns(t)); in __send_signal()
1123 from_kuid_munged(task_cred_xxx(t, user_ns), in __send_signal()
1158 signalfd_notify(t, sig); in __send_signal()
1164 hlist_for_each_entry(delayed, &t->signal->multiprocess, node) { in __send_signal()
1175 complete_signal(sig, t, type); in __send_signal()
1177 trace_signal_generate(sig, info, t, type != PIDTYPE_PID, result); in __send_signal()
1203 static int send_signal(int sig, struct kernel_siginfo *info, struct task_struct *t, in send_signal() argument
1211 force = !task_pid_nr_ns(current, task_active_pid_ns(t)); in send_signal()
1220 t_user_ns = task_cred_xxx(t, user_ns); in send_signal()
1231 if (!task_pid_nr_ns(current, task_active_pid_ns(t))) { in send_signal()
1236 return __send_signal(sig, info, t, type, force); in send_signal()
1304 force_sig_info_to_task(struct kernel_siginfo *info, struct task_struct *t) in force_sig_info_to_task() argument
1311 spin_lock_irqsave(&t->sighand->siglock, flags); in force_sig_info_to_task()
1312 action = &t->sighand->action[sig-1]; in force_sig_info_to_task()
1314 blocked = sigismember(&t->blocked, sig); in force_sig_info_to_task()
1318 sigdelset(&t->blocked, sig); in force_sig_info_to_task()
1319 recalc_sigpending_and_wake(t); in force_sig_info_to_task()
1326 if (action->sa.sa_handler == SIG_DFL && !t->ptrace) in force_sig_info_to_task()
1327 t->signal->flags &= ~SIGNAL_UNKILLABLE; in force_sig_info_to_task()
1328 ret = send_signal(sig, info, t, PIDTYPE_PID); in force_sig_info_to_task()
1329 spin_unlock_irqrestore(&t->sighand->siglock, flags); in force_sig_info_to_task()
1344 struct task_struct *t = p; in zap_other_threads() local
1349 while_each_thread(p, t) { in zap_other_threads()
1350 task_clear_jobctl_pending(t, JOBCTL_PENDING_MASK); in zap_other_threads()
1354 if (t->exit_state) in zap_other_threads()
1356 sigaddset(&t->pending.signal, SIGKILL); in zap_other_threads()
1357 signal_wake_up(t, 1); in zap_other_threads()
1654 , struct task_struct *t) in force_sig_fault_to_task() argument
1671 return force_sig_info_to_task(&info, t); in force_sig_fault_to_task()
1686 , struct task_struct *t) in send_sig_fault() argument
1703 return send_sig_info(info.si_signo, &info, t); in send_sig_fault()
1720 int send_sig_mceerr(int code, void __user *addr, short lsb, struct task_struct *t) in send_sig_mceerr() argument
1731 return send_sig_info(info.si_signo, &info, t); in send_sig_mceerr()
1845 struct task_struct *t; in send_sigqueue() local
1853 t = pid_task(pid, type); in send_sigqueue()
1854 if (!t || !likely(lock_task_sighand(t, &flags))) in send_sigqueue()
1859 if (!prepare_signal(sig, t, false)) in send_sigqueue()
1875 signalfd_notify(t, sig); in send_sigqueue()
1876 pending = (type != PIDTYPE_PID) ? &t->signal->shared_pending : &t->pending; in send_sigqueue()
1879 complete_signal(sig, t, type); in send_sigqueue()
1882 trace_signal_generate(sig, &q->info, t, type != PIDTYPE_PID, result); in send_sigqueue()
1883 unlock_task_sighand(t, &flags); in send_sigqueue()
2306 struct task_struct *t; in do_signal_stop() local
2341 t = current; in do_signal_stop()
2342 while_each_thread(current, t) { in do_signal_stop()
2348 if (!task_is_stopped(t) && in do_signal_stop()
2349 task_set_jobctl_pending(t, signr | gstop)) { in do_signal_stop()
2351 if (likely(!(t->ptrace & PT_SEIZED))) in do_signal_stop()
2352 signal_wake_up(t, 0); in do_signal_stop()
2354 ptrace_trap_notify(t); in do_signal_stop()
2786 struct task_struct *t; in retarget_shared_pending() local
2792 t = tsk; in retarget_shared_pending()
2793 while_each_thread(tsk, t) { in retarget_shared_pending()
2794 if (t->flags & PF_EXITING) in retarget_shared_pending()
2797 if (!has_pending_signals(&retarget, &t->blocked)) in retarget_shared_pending()
2800 sigandsets(&retarget, &retarget, &t->blocked); in retarget_shared_pending()
2802 if (!signal_pending(t)) in retarget_shared_pending()
2803 signal_wake_up(t, 0); in retarget_shared_pending()
3561 struct timespec64 t; in COMPAT_SYSCALL_DEFINE4() local
3572 if (get_timespec64(&t, uts)) in COMPAT_SYSCALL_DEFINE4()
3576 ret = do_sigtimedwait(&s, &info, uts ? &t : NULL); in COMPAT_SYSCALL_DEFINE4()
3592 struct timespec64 t; in COMPAT_SYSCALL_DEFINE4() local
3603 if (get_old_timespec32(&t, uts)) in COMPAT_SYSCALL_DEFINE4()
3607 ret = do_sigtimedwait(&s, &info, uts ? &t : NULL); in COMPAT_SYSCALL_DEFINE4()
3951 struct task_struct *p = current, *t; in do_sigaction() local
3985 for_each_thread(p, t) in do_sigaction()
3986 flush_sigqueue_mask(&mask, &t->pending); in do_sigaction()
3998 struct task_struct *t = current; in do_sigaltstack() local
4002 oss->ss_sp = (void __user *) t->sas_ss_sp; in do_sigaltstack()
4003 oss->ss_size = t->sas_ss_size; in do_sigaltstack()
4030 t->sas_ss_sp = (unsigned long) ss_sp; in do_sigaltstack()
4031 t->sas_ss_size = ss_size; in do_sigaltstack()
4032 t->sas_ss_flags = ss_flags; in do_sigaltstack()
4064 struct task_struct *t = current; in __save_altstack() local
4065 int err = __put_user((void __user *)t->sas_ss_sp, &uss->ss_sp) | in __save_altstack()
4066 __put_user(t->sas_ss_flags, &uss->ss_flags) | in __save_altstack()
4067 __put_user(t->sas_ss_size, &uss->ss_size); in __save_altstack()
4070 if (t->sas_ss_flags & SS_AUTODISARM) in __save_altstack()
4071 sas_ss_reset(t); in __save_altstack()
4122 struct task_struct *t = current; in __compat_save_altstack() local
4123 err = __put_user(ptr_to_compat((void __user *)t->sas_ss_sp), in __compat_save_altstack()
4125 __put_user(t->sas_ss_flags, &uss->ss_flags) | in __compat_save_altstack()
4126 __put_user(t->sas_ss_size, &uss->ss_size); in __compat_save_altstack()
4129 if (t->sas_ss_flags & SS_AUTODISARM) in __compat_save_altstack()
4130 sas_ss_reset(t); in __compat_save_altstack()
4585 void kdb_send_sig(struct task_struct *t, int sig) in kdb_send_sig() argument
4589 if (!spin_trylock(&t->sighand->siglock)) { in kdb_send_sig()
4595 new_t = kdb_prev_t != t; in kdb_send_sig()
4596 kdb_prev_t = t; in kdb_send_sig()
4597 if (t->state != TASK_RUNNING && new_t) { in kdb_send_sig()
4598 spin_unlock(&t->sighand->siglock); in kdb_send_sig()
4607 ret = send_signal(sig, SEND_SIG_PRIV, t, PIDTYPE_PID); in kdb_send_sig()
4608 spin_unlock(&t->sighand->siglock); in kdb_send_sig()
4611 sig, t->pid); in kdb_send_sig()
4613 kdb_printf("Signal %d is sent to process %d.\n", sig, t->pid); in kdb_send_sig()