Defined in 1 files as a function:

Referenced in 5 files:

Smatch caller information:

kernel/exit.c __do_wait() -> pid_has_task()

Type Parameter Key Value
PARAM_VALUE 0 pid 1-u64max
PARAM_VALUE 1 type 0-3
RX_PATH
TASK_NOT_RUNNING

kernel/fork.c pidfd_prepare() -> pid_has_task()

Type Parameter Key Value
PARAM_VALUE 1 type 0
DATA_SOURCE 0 pid $0
RX_PATH
TASK_NOT_RUNNING
LOCK2 irq
LOCK2 0 &pid->wait_pidfd.lock
HALF_LOCKED2 &u->iolock
TYPE_LOCK (struct wait_queue_head)->lock

kernel/fork.c pidfd_prepare() -> pid_has_task()

Type Parameter Key Value
PARAM_VALUE 1 type 1
DATA_SOURCE 0 pid $0
RX_PATH
TASK_NOT_RUNNING
LOCK2 irq
LOCK2 0 &pid->wait_pidfd.lock
HALF_LOCKED2 &u->iolock
TYPE_LOCK (struct wait_queue_head)->lock

fs/pidfs.c pidfd_show_fdinfo() -> pid_has_task()

Type Parameter Key Value
PARAM_VALUE 1 type 0
BUF_SIZE 0 pid s32min-(-1),1-s32max
BUF_SIZE 0 pid s32min-(-1),1-s32max
DATA_SOURCE 0 pid r pidfd_pid
RX_PATH
TASK_NOT_RUNNING
LOCK2 &m->lock
TYPE_LOCK (struct seq_file)->lock

kernel/time/posix-cpu-timers.c pid_for_clock() -> pid_has_task()

Type Parameter Key Value
PARAM_VALUE 0 pid 1-u64max
PARAM_VALUE 1 type 1
DATA_SOURCE 0 pid r find_vpid
LOCK2 rcu_read

kernel/pid.c __change_pid() -> pid_has_task()

Type Parameter Key Value
PARAM_VALUE 1 type 0-3
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &tasklist_lock
LOCK2 irq
HALF_LOCKED2 &sig->stats_lock.lock
HALF_LOCKED2 &sighand->siglock