Documented in 1 files:

Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

kernel/workqueue.c __flush_workqueue() -> check_flush_dependency()

Type Parameter Key Value
PARAM_VALUE 0 target_wq 4096-ptr_max
PARAM_VALUE 0 target_wq->flusher_overflow.prev 2906673126597898240
PARAM_VALUE 0 target_wq->flusher_overflow.prev->next 2906673126597898240
PARAM_VALUE 0 target_wq->flusher_overflow.prev->next->next 4096-ptr_max
PARAM_VALUE 0 target_wq->mutex.dep_map->name 0-255
PARAM_VALUE 0 target_wq->mutex.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 target_wq->mutex.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 target_wq->mutex.osq.tail.counter 0-s32max
PARAM_VALUE 0 target_wq->mutex.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 target_wq->mutex.wait_lock.owner (-1)
PARAM_VALUE 0 target_wq->mutex.wait_lock.owner_cpu u32max
PARAM_VALUE 1 target_work 0
PARAM_VALUE 2 from_cancel 0
BUF_SIZE 0 target_wq->first_flusher (-1),120
CAPPED_DATA 0 target_wq->lockdep_map 1
CAPPED_DATA 0 &target_wq->flusher_overflow 1
CAPPED_DATA 0 &target_wq->mutex 1
DATA_SOURCE 0 target_wq $0
NOCHECK_CALL
LOCK2 0 &target_wq->mutex
TYPE_LOCK (struct workqueue_struct)->mutex

kernel/workqueue.c start_flush_work() -> check_flush_dependency()

Type Parameter Key Value
PARAM_VALUE 1 target_work 4096-ptr_max
PARAM_VALUE 1 target_work->func 1-u64max
CAPPED_DATA 1 target_work 1
CAPPED_DATA 1 target_work->func 1
DATA_SOURCE 1 target_work $0
DATA_SOURCE 2 from_cancel $2
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &pool->lock
LOCK2 irq
LOCK2 rcu_read
TYPE_LOCK (struct worker_pool)->lock