Documented in 1 files:

Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

kernel/workqueue.c __pwq_activate_work() -> move_linked_works()

Type Parameter Key Value
PARAM_VALUE 0 work 4096-ptr_max
PARAM_VALUE 1 head 4096-ptr_max
PARAM_VALUE 2 nextp 0
DATA_SOURCE 0 work $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &nna->lock
HALF_LOCKED2 irq
TYPE_LOCK (struct worker_pool)->lock

kernel/workqueue.c assign_work() -> move_linked_works()

Type Parameter Key Value
PARAM_VALUE 0 work 4096-ptr_max
PARAM_VALUE 0 work->func 0-3274354728416366591,3274354728416366593-u64max
PARAM_VALUE 1 head 4096-ptr_max
PARAM_VALUE 2 nextp 0,1516031008434524160
PARAM_VALUE 2 *nextp 4096-ptr_max
CAPPED_DATA 0 work 1
CAPPED_DATA 0 work->func 1
DATA_SOURCE 0 work $0
DATA_SOURCE 2 nextp $2
PREEMPT_ADD
NOCHECK_CALL
LOCK2 &pool->lock
LOCK2 irq
TYPE_LOCK (struct worker_pool)->lock

kernel/workqueue.c assign_work() -> move_linked_works()

Type Parameter Key Value
PARAM_VALUE 0 work 4096-ptr_max
PARAM_VALUE 0 work->func 0-3274354728416366591,3274354728416366593-u64max
PARAM_VALUE 1 head 4096-ptr_max
PARAM_VALUE 2 nextp 0,1516031008434524160
PARAM_VALUE 2 *nextp 4096-ptr_max
CAPPED_DATA 0 work 1
CAPPED_DATA 0 work->func 1
DATA_SOURCE 0 work $0
DATA_SOURCE 2 nextp $2
PREEMPT_ADD
NOCHECK_CALL
LOCK2 &pool->lock
LOCK2 irq
TYPE_LOCK (struct worker_pool)->lock

kernel/workqueue.c try_to_grab_pending() -> move_linked_works()

Type Parameter Key Value
PARAM_VALUE 0 work 4096-ptr_max
PARAM_VALUE 0 work->data 2-u64max
PARAM_VALUE 1 head 4096-ptr_max
PARAM_VALUE 2 nextp 0
CAPPED_DATA 0 work 1
DATA_SOURCE 0 work $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &pool->lock
LOCK2 *irq_flags
LOCK2 rcu_read
TYPE_LOCK (struct worker_pool)->lock