Lines Matching +full:protect +full:- +full:exec

1 /* SPDX-License-Identifier: GPL-2.0 */
13 #include <linux/posix-timers.h>
18 * Types defining task->signal and task->sighand and APIs using them:
29 * Per-process accounting stats:
61 * struct thread_group_cputimer - thread group interval timer counts
103 /* current thread group signal load-balancing target: */
126 * manager, to re-parent orphan (double-forking) child processes
210 * getrlimit/setrlimit use task_lock(current->group_leader) to
211 * protect this instead of the siglock, because they really
217 struct pacct_struct pacct; /* per-process accounting information */
245 * being updated during exec,
272 WARN_ON(sig->flags & SIGNAL_GROUP_EXIT); in signal_set_stop_flags()
273 sig->flags = (sig->flags & ~SIGNAL_STOP_MASK) | flags; in signal_set_stop_flags()
289 spin_lock_irq(&task->sighand->siglock); in kernel_dequeue_signal()
290 ret = dequeue_signal(task, &task->blocked, &__info, &__type); in kernel_dequeue_signal()
291 spin_unlock_irq(&task->sighand->siglock); in kernel_dequeue_signal()
298 spin_lock_irq(&current->sighand->siglock); in kernel_signal_stop()
299 if (current->jobctl & JOBCTL_STOP_DEQUEUED) { in kernel_signal_stop()
300 current->jobctl |= JOBCTL_STOPPED; in kernel_signal_stop()
303 spin_unlock_irq(&current->sighand->siglock); in kernel_signal_stop()
355 * user -> kernel to guarantee expedient run of TWA_SIGNAL based task_work.
376 return -ERESTARTNOINTR; in restart_syscall()
398 return unlikely(sigismember(&p->pending.signal, SIGKILL)); in __fatal_signal_pending()
434 * callers must hold sighand->siglock.
444 if (fatal && !(t->jobctl & JOBCTL_PTRACE_FROZEN)) { in signal_wake_up()
445 t->jobctl &= ~(JOBCTL_STOPPED | JOBCTL_TRACED); in signal_wake_up()
454 t->jobctl &= ~JOBCTL_TRACED; in ptrace_signal_wake_up()
469 * set_restore_sigmask() - make sure saved_sigmask processing gets done
508 /* Higher-quality implementation, used if TIF_RESTORE_SIGMASK doesn't exist. */
511 current->restore_sigmask = true; in set_restore_sigmask()
515 task->restore_sigmask = false; in clear_tsk_restore_sigmask()
519 current->restore_sigmask = false; in clear_restore_sigmask()
523 return current->restore_sigmask; in test_restore_sigmask()
527 return task->restore_sigmask; in test_tsk_restore_sigmask()
531 if (!current->restore_sigmask) in test_and_clear_restore_sigmask()
533 current->restore_sigmask = false; in test_and_clear_restore_sigmask()
541 __set_current_blocked(&current->saved_sigmask); in restore_saved_sigmask()
556 sigset_t *res = &current->blocked; in sigmask_to_save()
558 res = &current->saved_sigmask; in sigmask_to_save()
574 return sp >= current->sas_ss_sp && in __on_sig_stack()
575 sp - current->sas_ss_sp < current->sas_ss_size; in __on_sig_stack()
577 return sp > current->sas_ss_sp && in __on_sig_stack()
578 sp - current->sas_ss_sp <= current->sas_ss_size; in __on_sig_stack()
596 if (current->sas_ss_flags & SS_AUTODISARM) in on_sig_stack()
604 if (!current->sas_ss_size) in sas_ss_flags()
612 p->sas_ss_sp = 0; in sas_ss_reset()
613 p->sas_ss_size = 0; in sas_ss_reset()
614 p->sas_ss_flags = SS_DISABLE; in sas_ss_reset()
619 if (unlikely((ksig->ka.sa.sa_flags & SA_ONSTACK)) && ! sas_ss_flags(sp)) in sigsp()
621 return current->sas_ss_sp; in sigsp()
623 return current->sas_ss_sp + current->sas_ss_size; in sigsp()
635 list_entry_rcu((p)->tasks.next, struct task_struct, tasks)
643 * Without tasklist/siglock it is only rcu-safe if g can't exit/exec,
653 list_for_each_entry_rcu(t, &(signal)->thread_head, thread_node, \
657 __for_each_thread((p)->signal, t)
673 pid = task->signal->pids[type]; in task_pid_type()
679 return task->signal->pids[PIDTYPE_TGID]; in task_tgid()
689 return task->signal->pids[PIDTYPE_PGID]; in task_pgrp()
694 return task->signal->pids[PIDTYPE_SID]; in task_session()
699 return task->signal->nr_threads; in get_nr_threads()
704 return p->exit_signal >= 0; in thread_group_leader()
710 return p1->signal == p2->signal; in same_thread_group()
718 return list_next_or_null_rcu(&p->signal->thread_head, in __next_thread()
719 &p->thread_node, in __next_thread()
726 return __next_thread(p) ?: p->group_leader; in next_thread()
732 list_is_last(&p->thread_node, &p->signal->thread_head); in thread_group_empty()
749 (void)__cond_lock(&task->sighand->siglock, ret); in lock_task_sighand()
756 spin_unlock_irqrestore(&task->sighand->siglock, *flags); in unlock_task_sighand()
768 return READ_ONCE(task->signal->rlim[limit].rlim_cur); in task_rlimit()
774 return READ_ONCE(task->signal->rlim[limit].rlim_max); in task_rlimit_max()