Defined in 2 files as a function:

Referenced in 4 files:

Smatch caller information:

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

Type Parameter Key Value
PARAM_VALUE 0 p 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &tasklist_lock

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

Type Parameter Key Value
PARAM_VALUE 0 p 4096-ptr_max
PARAM_VALUE 0 p->signal 4096-ptr_max
CAPPED_DATA 0 p 1
DATA_SOURCE 0 p $1
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &sighand->siglock
LOCK2 global &tasklist_lock
LOCK2 irq
TYPE_LOCK (struct sighand_struct)->siglock

kernel/cgroup/cgroup.c cgroup_attach_task() -> next_thread()

Type Parameter Key Value
PARAM_VALUE 0 p 4096-ptr_max
CAPPED_DATA 0 p->cgroups 1
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &of->mutex
LOCK2 global &cgroup_mutex
LOCK2 global &css_set_lock
LOCK2 irq
HALF_LOCKED2 &of->prealloc_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct kernfs_open_file)->mutex

kernel/cgroup/cgroup.c cgroup_migrate() -> next_thread()

Type Parameter Key Value
PARAM_VALUE 0 p 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &cgroup_mutex
LOCK2 global &css_set_lock
LOCK2 irq
HALF_LOCKED2 &of->mutex

kernel/signal.c complete_signal() -> next_thread()

Type Parameter Key Value
PARAM_VALUE 0 p 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 irq
HALF_LOCKED2 rcu_read

kernel/signal.c do_signal_stop() -> next_thread()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 &sighand->siglock
LOCK2 irq
TYPE_LOCK (struct sighand_struct)->siglock

kernel/signal.c do_signal_stop() -> next_thread()

Type Parameter Key Value
DATA_SOURCE 0 p r next_thread
RX_PATH
TASK_NOT_RUNNING
LOCK2 &sighand->siglock
LOCK2 irq
TYPE_LOCK (struct sighand_struct)->siglock

kernel/signal.c retarget_shared_pending() -> next_thread()

Type Parameter Key Value
PARAM_VALUE 0 p 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 &tsk->sighand->siglock
LOCK2 irq
TYPE_LOCK (struct sighand_struct)->siglock

kernel/signal.c retarget_shared_pending() -> next_thread()

Type Parameter Key Value
PARAM_VALUE 0 p 4096-ptr_max
DATA_SOURCE 0 p r next_thread
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 &tsk->sighand->siglock
LOCK2 irq
TYPE_LOCK (struct sighand_struct)->siglock

kernel/signal.c zap_other_threads() -> next_thread()

Type Parameter Key Value
PARAM_VALUE 0 p 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 irq
HALF_LOCKED2 &sighand->siglock
HALF_LOCKED2 lock

kernel/signal.c zap_other_threads() -> next_thread()

Type Parameter Key Value
PARAM_VALUE 0 p 4096-ptr_max
DATA_SOURCE 0 p r next_thread
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 irq
HALF_LOCKED2 &sighand->siglock
HALF_LOCKED2 lock

fs/exec.c check_unsafe_exec() -> next_thread()

Type Parameter Key Value
PARAM_VALUE 0 p 4096-ptr_max
PREEMPT_ADD <- disables preempt
LOCK2 &p->fs->seq.lock
LOCK2 rcu_read
TYPE_LOCK (struct seqlock)->lock

fs/exec.c check_unsafe_exec() -> next_thread()

Type Parameter Key Value
PARAM_VALUE 0 p 4096-ptr_max
DATA_SOURCE 0 p r next_thread
PREEMPT_ADD <- disables preempt
LOCK2 &p->fs->seq.lock
LOCK2 rcu_read
TYPE_LOCK (struct seqlock)->lock