Defined in 1 files as a function:

Referenced in 16 files:

Smatch caller information:

kernel/exit.c __exit_signal() -> thread_group_leader()

Type Parameter Key Value
PARAM_VALUE 0 p 4096-ptr_max
CAPPED_DATA 0 p 1
DATA_SOURCE 0 p $1
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &tasklist_lock
LOCK2 irq

kernel/exit.c exit_notify() -> thread_group_leader()

Type Parameter Key Value
PARAM_VALUE 0 p 4096-ptr_max
CAPPED_DATA 0 p 1
CAPPED_DATA 0 p->cgroups 1
CAPPED_DATA 0 p->sched_class 1
CAPPED_DATA 0 p->signal 1
DATA_SOURCE 0 p $0
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 p->dl.pi_se->runtime 1-17592186044415[c]
USER_DATA 0 p->exit_code 0,256-65280[c]
USER_DATA 0 p->signal->group_exit_code 0,256-65280[c]
LOCK2 global &tasklist_lock
LOCK2 irq
HALF_LOCKED2 global &system_transition_mutex

kernel/exit.c release_task() -> thread_group_leader()

Type Parameter Key Value
PARAM_VALUE 0 p 4096-ptr_max
CAPPED_DATA 0 p 1
DATA_SOURCE 0 p $0 [m]
PARAM_COMPARE 0 &p->ptraced == $0->ptraced.next
MEM_ZERO 0 &p->pending.signal
RX_PATH
TASK_NOT_RUNNING

kernel/exit.c thread_group_empty() -> thread_group_leader()

Type Parameter Key Value
DATA_SOURCE 0 p $0
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 p->dl.pi_se->runtime 1-17592186044415[c]
USER_DATA 0 p->exit_code 0,256-65280[c]
USER_DATA 0 p->signal->group_exit_code 0,256-65280[c]
NO_OVERFLOW_SIMPLE 0 p->delays->blkio_delay
NO_OVERFLOW_SIMPLE 0 p->delays->compact_delay
NO_OVERFLOW_SIMPLE 0 p->delays->freepages_delay
NO_OVERFLOW_SIMPLE 0 p->delays->irq_delay
NO_OVERFLOW_SIMPLE 0 p->delays->swapin_delay
NO_OVERFLOW_SIMPLE 0 p->delays->thrashing_delay
NO_OVERFLOW_SIMPLE 0 p->delays->wpcopy_delay
NO_OVERFLOW_SIMPLE 0 p->signal->stats->blkio_delay_total
NO_OVERFLOW_SIMPLE 0 p->signal->stats->compact_delay_total
NO_OVERFLOW_SIMPLE 0 p->signal->stats->cpu_delay_total
NO_OVERFLOW_SIMPLE 0 p->signal->stats->cpu_run_virtual_total
NO_OVERFLOW_SIMPLE 0 p->signal->stats->freepages_delay_total
NO_OVERFLOW_SIMPLE 0 p->signal->stats->irq_delay_total
NO_OVERFLOW_SIMPLE 0 p->signal->stats->swapin_delay_total
NO_OVERFLOW_SIMPLE 0 p->signal->stats->thrashing_delay_total
NO_OVERFLOW_SIMPLE 0 p->signal->stats->wpcopy_delay_total
HALF_LOCKED2 global &tasklist_lock
HALF_LOCKED2 irq

kernel/exit.c wait_consider_task() -> thread_group_leader()

Type Parameter Key Value
PARAM_VALUE 0 p 4096-ptr_max
DATA_SOURCE 0 p $2
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 global &tasklist_lock

kernel/exit.c wait_task_zombie() -> thread_group_leader()

Type Parameter Key Value
PARAM_VALUE 0 p 4096-ptr_max
DATA_SOURCE 0 p $1
PARAM_COMPARE 0 p->parent->signal != $0->real_parent->signal
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 global &tasklist_lock

kernel/exit.c wait_task_zombie() -> thread_group_leader()

Type Parameter Key Value
PARAM_VALUE 0 p 4096-ptr_max
DATA_SOURCE 0 p $1
RX_PATH
TASK_NOT_RUNNING

kernel/fork.c copy_process() -> thread_group_leader()

Type Parameter Key Value
PARAM_VALUE 0 p 4096-ptr_max
CAPPED_DATA 0 p 1
CAPPED_DATA 0 p->mempolicy 1
CAPPED_DATA 0 p->real_cred 1
DATA_SOURCE 0 p r dup_task_struct
BIT_INFO 0 p->flags 0x40,0xffffffffffffffff
NOSPEC 0 p->thread.fsbase
NOSPEC 0 p->thread.gsbase
MEM_ZERO 0 p->futex.exit_mutex.dep_map.key
MEM_ZERO 0 p->futex.exit_mutex.dep_map.name
MEM_ZERO 0 p->futex.exit_mutex.wait_lock.dep_map.key
MEM_ZERO 0 p->futex.exit_mutex.wait_lock.dep_map.name
MEM_ZERO 0 p->futex.exit_mutex.wait_lock.owner
MEM_ZERO 0 p->futex.pi_state_list.next
MEM_ZERO 0 p->futex.pi_state_list.prev
MEM_ZERO 0 p->perf_recursion
MEM_ZERO 0 p->thread.ptrace_bps
MEM_ZERO 0 &p->dl.dl_timer
MEM_ZERO 0 &p->dl.inactive_timer
MEM_ZERO 0 &p->futex
MEM_ZERO 0 &p->ioac
MEM_ZERO 0 &p->irqtrace
MEM_ZERO 0 &p->pending.signal
MEM_ZERO 0 &p->posix_cputimers
MEM_ZERO 0 &p->posix_cputimers_work.work
MEM_ZERO 0 &p->sched_info
MEM_ZERO 0 &p->se.avg
MEM_ZERO 0 &p->stats
MEM_ZERO 0 &p->unwind_info
MEM_ZERO 0 &p->unwind_info.unwind_mask
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 p->exit_signal 1-64[c]
USER_DATA 0 p->group_leader->thread.fsbase 0-s32max[c]
USER_DATA 0 p->group_leader->thread.gsbase 0-s32max[c]
USER_DATA 0 p->thread.fsbase 0-s32max[c]
USER_DATA 0 p->thread.gsbase 0-s32max[c]
LOCK2 global &tasklist_lock
LOCK2 irq

kernel/fork.c thread_group_empty() -> thread_group_leader()

Type Parameter Key Value
DATA_SOURCE 0 p $0

fs/pidfs.c pidfd_poll() -> thread_group_leader()

Type Parameter Key Value
PARAM_VALUE 0 p 4096-ptr_max
DATA_SOURCE 0 p r pid_task
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &kvm->irq_srcu
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &vm->irqfds_lock
HALF_LOCKED2 global &irqfds_srcu

fs/pidfs.c thread_group_empty() -> thread_group_leader()

Type Parameter Key Value
PARAM_VALUE 0 p 4096-ptr_max
PARAM_VALUE 0 p->exit_signal 0-s32max
DATA_SOURCE 0 p $0
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &kvm->irq_srcu
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &vm->irqfds_lock
HALF_LOCKED2 global &irqfds_srcu

kernel/tsacct.c bacct_add_tsk() -> thread_group_leader()

Type Parameter Key Value
PARAM_VALUE 0 p 4096-ptr_max
DATA_SOURCE 0 p $3
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 p->exit_code 0,256-65280[c]
USER_DATA 0 p->signal->group_exit_code 0,256-65280[c]
NO_OVERFLOW_SIMPLE 0 p->delays->blkio_delay
NO_OVERFLOW_SIMPLE 0 p->delays->compact_delay
NO_OVERFLOW_SIMPLE 0 p->delays->freepages_delay
NO_OVERFLOW_SIMPLE 0 p->delays->irq_delay
NO_OVERFLOW_SIMPLE 0 p->delays->swapin_delay
NO_OVERFLOW_SIMPLE 0 p->delays->thrashing_delay
NO_OVERFLOW_SIMPLE 0 p->delays->wpcopy_delay

mm/oom_kill.c thread_group_empty() -> thread_group_leader()

Type Parameter Key Value
PARAM_VALUE 0 p 4096-ptr_max
DATA_SOURCE 0 p $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 global &oom_lock
HALF_LOCKED2 rcu_read
HALF_LOCKED2 0 &p->alloc_lock

security/yama/yama_lsm.c ptracer_exception_found() -> thread_group_leader()

Type Parameter Key Value
PARAM_VALUE 0 p 4096-ptr_max
DATA_SOURCE 0 p $1
LOCK2 rcu_read

security/yama/yama_lsm.c task_is_descendant() -> thread_group_leader()

Type Parameter Key Value
PARAM_VALUE 0 p 1-u64max
DATA_SOURCE 0 p $0
UNITS 0 p unit_byte
LOCK2 rcu_read

security/yama/yama_lsm.c task_is_descendant() -> thread_group_leader()

Type Parameter Key Value
PARAM_VALUE 0 p 4096-ptr_max
UNITS 0 p unit_byte
LOCK2 rcu_read

kernel/ptrace.c __ptrace_detach() -> thread_group_leader()

Type Parameter Key Value
PARAM_VALUE 0 p 4096-ptr_max
CAPPED_DATA 0 p 1
DATA_SOURCE 0 p $1
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 p->dl.pi_se->runtime 1-17592186044415[c]
USER_DATA 0 p->exit_code 0-64
LOCK2 global &tasklist_lock
LOCK2 irq

kernel/ptrace.c thread_group_empty() -> thread_group_leader()

Type Parameter Key Value
PARAM_VALUE 0 p 4096-ptr_max
PARAM_VALUE 0 p->exit_signal 0-s32max
CAPPED_DATA 0 p 1
DATA_SOURCE 0 p $0
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 p->dl.pi_se->runtime 1-17592186044415[c]
USER_DATA 0 p->exit_code 0-64
LOCK2 global &tasklist_lock
LOCK2 irq

fs/binfmt_elf.c fill_prstatus() -> thread_group_leader()

Type Parameter Key Value
PARAM_VALUE 0 p 4096-ptr_max
DATA_SOURCE 0 p $1
RX_PATH
TASK_NOT_RUNNING

kernel/pid_namespace.c zap_pid_ns_processes() -> thread_group_leader()

Type Parameter Key Value
DATA_SOURCE 0 p r get_current
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 global &system_transition_mutex

kernel/taskstats.c thread_group_empty() -> thread_group_leader()

Type Parameter Key Value
PARAM_VALUE 0 p 4096-ptr_max
DATA_SOURCE 0 p $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 p->exit_code 0,256-65280[c]
USER_DATA 0 p->signal->group_exit_code 0,256-65280[c]
HALF_LOCKED2 global &system_transition_mutex

security/keys/keyctl.c thread_group_empty() -> thread_group_leader()

Type Parameter Key Value
PARAM_VALUE 0 p 4096-ptr_max
DATA_SOURCE 0 p $0
LOCK2 global &tasklist_lock
LOCK2 irq
LOCK2 rcu_read

kernel/cgroup/cpuset.c cpuset_update_tasks_nodemask() -> thread_group_leader()

Type Parameter Key Value
PARAM_VALUE 0 p 4096-ptr_max
DATA_SOURCE 0 p r css_task_iter_next
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &cpuset_mutex
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 global &cpuset_top_mutex

kernel/cgroup/cgroup.c cgroup_procs_write_start() -> thread_group_leader()

Type Parameter Key Value
PARAM_VALUE 0 p 4096-ptr_max
BIT_INFO 0 p->flags 0x0,0xfbffffff
RX_PATH
TASK_NOT_RUNNING
LOCK2 &of->mutex
LOCK2 global &cgroup_mutex
HALF_LOCKED2 &of->prealloc_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct kernfs_open_file)->mutex

kernel/cgroup/cgroup.c css_task_iter_advance() -> thread_group_leader()

Type Parameter Key Value
PARAM_VALUE 0 p 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &css_set_lock
LOCK2 irqflags
HALF_LOCKED2 &cgrp->pidlist_mutex
HALF_LOCKED2 &m->lock
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &s->lock
HALF_LOCKED2 _T->lock
HALF_LOCKED2 global &cgroup_mutex
HALF_LOCKED2 global &cpuset_mutex
HALF_LOCKED2 global &freezer_mutex
HALF_LOCKED2 global &oom_lock
HALF_LOCKED2 global &sched_domains_mutex
HALF_LOCKED2 rcu_read

kernel/cgroup/cgroup.c do_cgroup_task_dead() -> thread_group_leader()

Type Parameter Key Value
PARAM_VALUE 0 p 4096-ptr_max
CAPPED_DATA 0 p->cgroups 1
CAPPED_DATA 0 &p->cg_list 1
DATA_SOURCE 0 p $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
UNITS 0 p unit_byte
LOCK2 flags
LOCK2 global &css_set_lock

kernel/acct.c acct_collect() -> thread_group_leader()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 irq
HALF_LOCKED2 global &system_transition_mutex

net/core/netclassid_cgroup.c update_classid_task() -> thread_group_leader()

Type Parameter Key Value
PARAM_VALUE 0 p 4096-ptr_max
DATA_SOURCE 0 p $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &pool->lock

kernel/user_namespace.c thread_group_empty() -> thread_group_leader()

Type Parameter Key Value
DATA_SOURCE 0 p $0

kernel/signal.c thread_group_empty() -> thread_group_leader()

Type Parameter Key Value
PARAM_VALUE 0 p 4096-ptr_max
BUF_SIZE 0 p (-1),1-s32max
BUF_SIZE 0 p (-1),1-s32max
BUF_SIZE 0 p->group_leader (-1),1-s32max
BUF_SIZE 0 p->mempolicy (-1),1-s32max
CAPPED_DATA 0 p 1
DATA_SOURCE 0 p $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 p->dl.pi_se->runtime 1-17592186044415[c]
USER_DATA 0 p->exit_code 0-64,256-65280[c]
USER_DATA 0 p->exit_signal 1-64[c]
USER_DATA 0 p->parent->exit_code 0,256-65280[c]
USER_DATA 0 p->ptrace 65537,65545-33619953[c]
USER_DATA 0 p->real_parent->exit_code 0,256-65280[c]
USER_DATA 0 p->signal->group_exit_code 0,256-65280[c]
NO_OVERFLOW_SIMPLE 0 p->dl.pi_se->dl_runtime
UNITS 0 p unit_byte
HALF_LOCKED2 global &tasklist_lock
HALF_LOCKED2 irq
HALF_LOCKED2 0 &p->alloc_lock
HALF_LOCKED2 0 &p->sighand->siglock

kernel/sys.c __do_sys_setpgid() -> thread_group_leader()

Type Parameter Key Value
PARAM_VALUE 0 p 1-u64max
DATA_SOURCE 0 p r find_task_by_vpid
LOCK2 global &tasklist_lock
LOCK2 irq
LOCK2 rcu_read

kernel/sys.c __do_sys_setpgid() -> thread_group_leader()

Type Parameter Key Value
PARAM_VALUE 0 p 1-u64max
DATA_SOURCE 0 p r find_task_by_vpid
LOCK2 global &tasklist_lock
LOCK2 irq
LOCK2 rcu_read

kernel/bpf/task_iter.c task_seq_get_next() -> thread_group_leader()

Type Parameter Key Value
PARAM_VALUE 0 p 4096-ptr_max
DATA_SOURCE 0 p r get_pid_task
RX_PATH
TASK_NOT_RUNNING
LOCK2 &seq->lock
LOCK2 rcu_read
TYPE_LOCK (struct seq_file)->lock

fs/compat_binfmt_elf.c fill_prstatus() -> thread_group_leader()

Type Parameter Key Value
PARAM_VALUE 0 p 4096-ptr_max
DATA_SOURCE 0 p $1
RX_PATH
TASK_NOT_RUNNING

fs/exec.c de_thread() -> thread_group_leader()

Type Parameter Key Value
PARAM_VALUE 0 p 4096-ptr_max
CAPPED_DATA 0 p 1
DATA_SOURCE 0 p $0
PREEMPT_ADD <- disables preempt
LOCK2 irq
LOCK2 lock

fs/exec.c de_thread() -> thread_group_leader()

Type Parameter Key Value
PARAM_VALUE 0 p 4096-ptr_max
CAPPED_DATA 0 p 1
DATA_SOURCE 0 p $0

fs/exec.c de_thread() -> thread_group_leader()

Type Parameter Key Value
PARAM_VALUE 0 p 4096-ptr_max
PARAM_VALUE 0 p->exit_signal 17
CAPPED_DATA 0 p 1
DATA_SOURCE 0 p $0

fs/exec.c thread_group_empty() -> thread_group_leader()

Type Parameter Key Value
PARAM_VALUE 0 p 4096-ptr_max
DATA_SOURCE 0 p $0