Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

kernel/workqueue.c assign_rescuer_work() -> need_to_create_worker()

Type Parameter Key Value
PARAM_VALUE 0 pool 4096-ptr_max
LOCK2 &pool->lock
LOCK2 irq
TYPE_LOCK (struct worker_pool)->lock

kernel/workqueue.c maybe_create_worker() -> need_to_create_worker()

Type Parameter Key Value
PARAM_VALUE 0 pool 4096-ptr_max
PARAM_VALUE 0 pool->flags 0,2-u32max
PARAM_VALUE 0 pool->nr_idle 0
PARAM_VALUE 0 pool->nr_running 0
BUF_SIZE 0 pool->manager 128
CAPPED_DATA 0 &pool->mayday_timer 1
DATA_SOURCE 0 pool $0
BIT_INFO 0 pool->flags 0x2,0xffffffffffffffff
LOCK2 &pool->lock

kernel/workqueue.c maybe_create_worker() -> need_to_create_worker()

Type Parameter Key Value
PARAM_VALUE 0 pool 4096-ptr_max
PARAM_VALUE 0 pool->flags 0,2-u32max
PARAM_VALUE 0 pool->nr_idle 0
PARAM_VALUE 0 pool->nr_running 0
BUF_SIZE 0 pool->manager 128
CAPPED_DATA 0 &pool->mayday_timer 1
DATA_SOURCE 0 pool $0
PARAM_COMPARE 0 &pool->worklist != $0->worklist.next
BIT_INFO 0 pool->flags 0x2,0xffffffffffffffff
LOCK2 &pool->lock

kernel/workqueue.c maybe_create_worker() -> need_to_create_worker()

Type Parameter Key Value
PARAM_VALUE 0 pool 4096-ptr_max
PARAM_VALUE 0 pool->flags 0,2-u32max
PARAM_VALUE 0 pool->nr_idle 0
PARAM_VALUE 0 pool->nr_running 0
BUF_SIZE 0 pool->manager 128
CAPPED_DATA 0 &pool->mayday_timer 1
DATA_SOURCE 0 pool $0
BIT_INFO 0 pool->flags 0x2,0xffffffffffffffff
PREEMPT_ADD
LOCK2 &pool->lock
LOCK2 irq
LOCK2 0 &pool->lock
TYPE_LOCK (struct worker_pool)->lock

kernel/workqueue.c pool_mayday_timeout() -> need_to_create_worker()

Type Parameter Key Value
PARAM_VALUE 0 pool 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &wq_mayday_lock
LOCK2 irq
LOCK2 0 &pool->lock
TYPE_LOCK (struct worker_pool)->lock

kernel/workqueue.c rescuer_thread() -> need_to_create_worker()

Type Parameter Key Value
PARAM_VALUE 0 pool 4096-ptr_max
PARAM_VALUE 0 pool->nr_running 0-1
LOCK2 irq
LOCK2 0 &pool->lock
TYPE_LOCK (struct worker_pool)->lock