Lines Matching refs:info
261 int sig = q->info.si_signo; in __flush_itimer_signals()
263 if (likely(q->info.si_code != SI_TIMER)) { in __flush_itimer_signals()
359 static void collect_signal(int sig, struct sigpending *list, siginfo_t *info) in collect_signal() argument
368 if (q->info.si_signo == sig) { in collect_signal()
380 copy_siginfo(info, &first->info); in collect_signal()
387 info->si_signo = sig; in collect_signal()
388 info->si_errno = 0; in collect_signal()
389 info->si_code = 0; in collect_signal()
390 info->si_pid = 0; in collect_signal()
391 info->si_uid = 0; in collect_signal()
396 siginfo_t *info) in __dequeue_signal() argument
410 collect_signal(sig, pending, info); in __dequeue_signal()
422 int dequeue_signal(struct task_struct *tsk, sigset_t *mask, siginfo_t *info) in dequeue_signal() argument
429 signr = __dequeue_signal(&tsk->pending, mask, info); in dequeue_signal()
432 mask, info); in dequeue_signal()
477 if ((info->si_code & __SI_MASK) == __SI_TIMER && info->si_sys_private) { in dequeue_signal()
485 do_schedule_next_timer(info); in dequeue_signal()
542 if (sigismember(mask, q->info.si_signo)) { in rm_from_queue_full()
564 if (q->info.si_signo < SIGRTMIN && in rm_from_queue()
565 (mask & sigmask(q->info.si_signo))) { in rm_from_queue()
577 static int check_kill_permission(int sig, struct siginfo *info, in check_kill_permission() argument
587 if (info != SEND_SIG_NOINFO && (is_si_special(info) || SI_FROMKERNEL(info))) in check_kill_permission()
614 return security_task_kill(t, info, sig, 0); in check_kill_permission()
816 static int send_signal(int sig, struct siginfo *info, struct task_struct *t, in send_signal() argument
840 if (info == SEND_SIG_FORCED) in send_signal()
852 (is_si_special(info) || in send_signal()
853 info->si_code >= 0))); in send_signal()
856 switch ((unsigned long) info) { in send_signal()
858 q->info.si_signo = sig; in send_signal()
859 q->info.si_errno = 0; in send_signal()
860 q->info.si_code = SI_USER; in send_signal()
861 q->info.si_pid = task_tgid_nr_ns(current, in send_signal()
863 q->info.si_uid = current_uid(); in send_signal()
866 q->info.si_signo = sig; in send_signal()
867 q->info.si_errno = 0; in send_signal()
868 q->info.si_code = SI_KERNEL; in send_signal()
869 q->info.si_pid = 0; in send_signal()
870 q->info.si_uid = 0; in send_signal()
873 copy_siginfo(&q->info, info); in send_signal()
876 } else if (!is_si_special(info)) { in send_signal()
877 if (sig >= SIGRTMIN && info->si_code != SI_USER) in send_signal()
927 __group_send_sig_info(int sig, struct siginfo *info, struct task_struct *p) in __group_send_sig_info() argument
929 return send_signal(sig, info, p, 1); in __group_send_sig_info()
933 specific_send_sig_info(int sig, struct siginfo *info, struct task_struct *t) in specific_send_sig_info() argument
935 return send_signal(sig, info, t, 0); in specific_send_sig_info()
950 force_sig_info(int sig, struct siginfo *info, struct task_struct *t) in force_sig_info() argument
969 ret = specific_send_sig_info(sig, info, t); in force_sig_info()
1033 int group_send_sig_info(int sig, struct siginfo *info, struct task_struct *p) in group_send_sig_info() argument
1038 ret = check_kill_permission(sig, info, p); in group_send_sig_info()
1043 ret = __group_send_sig_info(sig, info, p); in group_send_sig_info()
1056 int __kill_pgrp_info(int sig, struct siginfo *info, struct pid *pgrp) in __kill_pgrp_info() argument
1064 int err = group_send_sig_info(sig, info, p); in __kill_pgrp_info()
1071 int kill_pid_info(int sig, struct siginfo *info, struct pid *pid) in kill_pid_info() argument
1080 error = group_send_sig_info(sig, info, p); in kill_pid_info()
1096 kill_proc_info(int sig, struct siginfo *info, pid_t pid) in kill_proc_info() argument
1100 error = kill_pid_info(sig, info, find_vpid(pid)); in kill_proc_info()
1106 int kill_pid_info_as_uid(int sig, struct siginfo *info, struct pid *pid, in kill_pid_info_as_uid() argument
1123 if ((info == SEND_SIG_NOINFO || in kill_pid_info_as_uid()
1124 (!is_si_special(info) && SI_FROMUSER(info))) && in kill_pid_info_as_uid()
1130 ret = security_task_kill(p, info, sig, secid); in kill_pid_info_as_uid()
1136 ret = __group_send_sig_info(sig, info, p); in kill_pid_info_as_uid()
1152 static int kill_something_info(int sig, struct siginfo *info, pid_t pid) in kill_something_info() argument
1158 ret = kill_pid_info(sig, info, find_vpid(pid)); in kill_something_info()
1165 ret = __kill_pgrp_info(sig, info, in kill_something_info()
1174 int err = group_send_sig_info(sig, info, p); in kill_something_info()
1195 send_sig_info(int sig, struct siginfo *info, struct task_struct *p) in send_sig_info() argument
1208 ret = specific_send_sig_info(sig, info, p); in send_sig_info()
1311 int sig = q->info.si_signo; in send_sigqueue()
1332 BUG_ON(q->info.si_code != SI_TIMER); in send_sigqueue()
1333 q->info.si_overrun++; in send_sigqueue()
1336 q->info.si_overrun = 0; in send_sigqueue()
1367 struct siginfo info; in do_notify_parent() local
1380 info.si_signo = sig; in do_notify_parent()
1381 info.si_errno = 0; in do_notify_parent()
1395 info.si_pid = task_pid_nr_ns(tsk, tsk->parent->nsproxy->pid_ns); in do_notify_parent()
1396 info.si_uid = __task_cred(tsk)->uid; in do_notify_parent()
1399 info.si_utime = cputime_to_clock_t(cputime_add(tsk->utime, in do_notify_parent()
1401 info.si_stime = cputime_to_clock_t(cputime_add(tsk->stime, in do_notify_parent()
1404 info.si_status = tsk->exit_code & 0x7f; in do_notify_parent()
1406 info.si_code = CLD_DUMPED; in do_notify_parent()
1408 info.si_code = CLD_KILLED; in do_notify_parent()
1410 info.si_code = CLD_EXITED; in do_notify_parent()
1411 info.si_status = tsk->exit_code >> 8; in do_notify_parent()
1439 __group_send_sig_info(sig, &info, tsk->parent); in do_notify_parent()
1448 struct siginfo info; in do_notify_parent_cldstop() local
1460 info.si_signo = SIGCHLD; in do_notify_parent_cldstop()
1461 info.si_errno = 0; in do_notify_parent_cldstop()
1466 info.si_pid = task_pid_nr_ns(tsk, tsk->parent->nsproxy->pid_ns); in do_notify_parent_cldstop()
1467 info.si_uid = __task_cred(tsk)->uid; in do_notify_parent_cldstop()
1470 info.si_utime = cputime_to_clock_t(tsk->utime); in do_notify_parent_cldstop()
1471 info.si_stime = cputime_to_clock_t(tsk->stime); in do_notify_parent_cldstop()
1473 info.si_code = why; in do_notify_parent_cldstop()
1476 info.si_status = SIGCONT; in do_notify_parent_cldstop()
1479 info.si_status = tsk->signal->group_exit_code & 0x7f; in do_notify_parent_cldstop()
1482 info.si_status = tsk->exit_code & 0x7f; in do_notify_parent_cldstop()
1492 __group_send_sig_info(SIGCHLD, &info, parent); in do_notify_parent_cldstop()
1541 static void ptrace_stop(int exit_code, int clear_code, siginfo_t *info) in ptrace_stop() argument
1543 if (arch_ptrace_stop_needed(exit_code, info)) { in ptrace_stop()
1556 arch_ptrace_stop(exit_code, info); in ptrace_stop()
1569 current->last_siginfo = info; in ptrace_stop()
1624 siginfo_t info; in ptrace_notify() local
1628 memset(&info, 0, sizeof info); in ptrace_notify()
1629 info.si_signo = SIGTRAP; in ptrace_notify()
1630 info.si_code = exit_code; in ptrace_notify()
1631 info.si_pid = task_pid_vnr(current); in ptrace_notify()
1632 info.si_uid = current_uid(); in ptrace_notify()
1636 ptrace_stop(exit_code, 1, &info); in ptrace_notify()
1717 static int ptrace_signal(int signr, siginfo_t *info, in ptrace_signal() argument
1726 ptrace_stop(signr, 0, info); in ptrace_signal()
1739 if (signr != info->si_signo) { in ptrace_signal()
1740 info->si_signo = signr; in ptrace_signal()
1741 info->si_errno = 0; in ptrace_signal()
1742 info->si_code = SI_USER; in ptrace_signal()
1743 info->si_pid = task_pid_vnr(current->parent); in ptrace_signal()
1744 info->si_uid = task_uid(current->parent); in ptrace_signal()
1749 specific_send_sig_info(signr, info, current); in ptrace_signal()
1756 int get_signal_to_deliver(siginfo_t *info, struct k_sigaction *return_ka, in get_signal_to_deliver() argument
1805 signr = tracehook_get_signal(current, regs, info, return_ka); in get_signal_to_deliver()
1812 info); in get_signal_to_deliver()
1818 signr = ptrace_signal(signr, info, in get_signal_to_deliver()
1874 if (likely(do_signal_stop(info->si_signo))) { in get_signal_to_deliver()
1895 print_fatal_signal(regs, info->si_signo); in get_signal_to_deliver()
1904 do_coredump(info->si_signo, info->si_signo, regs); in get_signal_to_deliver()
1910 do_group_exit(info->si_signo); in get_signal_to_deliver()
2165 siginfo_t info; in SYSCALL_DEFINE4() local
2191 sig = dequeue_signal(current, &these, &info); in SYSCALL_DEFINE4()
2210 sig = dequeue_signal(current, &these, &info); in SYSCALL_DEFINE4()
2221 if (copy_siginfo_to_user(uinfo, &info)) in SYSCALL_DEFINE4()
2235 struct siginfo info; in SYSCALL_DEFINE2() local
2237 info.si_signo = sig; in SYSCALL_DEFINE2()
2238 info.si_errno = 0; in SYSCALL_DEFINE2()
2239 info.si_code = SI_USER; in SYSCALL_DEFINE2()
2240 info.si_pid = task_tgid_vnr(current); in SYSCALL_DEFINE2()
2241 info.si_uid = current_uid(); in SYSCALL_DEFINE2()
2243 return kill_something_info(sig, &info, pid); in SYSCALL_DEFINE2()
2249 struct siginfo info; in do_tkill() local
2254 info.si_signo = sig; in do_tkill()
2255 info.si_errno = 0; in do_tkill()
2256 info.si_code = SI_TKILL; in do_tkill()
2257 info.si_pid = task_tgid_vnr(current); in do_tkill()
2258 info.si_uid = current_uid(); in do_tkill()
2263 error = check_kill_permission(sig, &info, p); in do_tkill()
2273 error = specific_send_sig_info(sig, &info, p); in do_tkill()
2316 siginfo_t info; in SYSCALL_DEFINE3() local
2318 if (copy_from_user(&info, uinfo, sizeof(siginfo_t))) in SYSCALL_DEFINE3()
2323 if (info.si_code >= 0) in SYSCALL_DEFINE3()
2325 info.si_signo = sig; in SYSCALL_DEFINE3()
2328 return kill_proc_info(sig, &info, pid); in SYSCALL_DEFINE3()