Documented in 1 files:

Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

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

Type Parameter Key Value
PARAM_VALUE 0 wq 4096-ptr_max
PARAM_VALUE 0 wq->first_flusher 2906673126597898240
PARAM_VALUE 0 wq->first_flusher->done.wait.lock.raw_lock.val.counter 0
PARAM_VALUE 0 wq->first_flusher->list.next 2906673126597898240
PARAM_VALUE 0 wq->first_flusher->list.prev 2906673126597898240
PARAM_VALUE 0 wq->mutex.dep_map->name 0-255
PARAM_VALUE 0 wq->mutex.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 wq->mutex.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 wq->mutex.osq.tail.counter 0-s32max
PARAM_VALUE 0 wq->mutex.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 wq->mutex.wait_lock.owner (-1)
PARAM_VALUE 0 wq->mutex.wait_lock.owner_cpu u32max
BUF_SIZE 0 wq->first_flusher 120
CAPPED_DATA 0 wq->lockdep_map 1
CAPPED_DATA 0 &wq->flusher_overflow 1
CAPPED_DATA 0 &wq->mutex 1
DATA_SOURCE 0 wq $0
PARAM_COMPARE 2 work_color != $0->flush_color
LOCK2 0 &wq->mutex
TYPE_LOCK (struct workqueue_struct)->mutex

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

Type Parameter Key Value
PARAM_VALUE 0 wq 4096-ptr_max
PARAM_VALUE 0 wq->first_flusher 1-u64max
PARAM_VALUE 0 wq->flusher_queue.prev 2906673126597898240
PARAM_VALUE 0 wq->flusher_queue.prev->next 2906673126597898240
PARAM_VALUE 0 wq->flusher_queue.prev->next->next 4096-ptr_max
PARAM_VALUE 0 wq->mutex.dep_map->name 0-255
PARAM_VALUE 0 wq->mutex.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 wq->mutex.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 wq->mutex.osq.tail.counter 0-s32max
PARAM_VALUE 0 wq->mutex.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 wq->mutex.wait_lock.owner (-1)
PARAM_VALUE 0 wq->mutex.wait_lock.owner_cpu u32max
PARAM_VALUE 1 flush_color (-1)
CAPPED_DATA 0 wq->lockdep_map 1
CAPPED_DATA 0 &wq->flusher_overflow 1
CAPPED_DATA 0 &wq->mutex 1
DATA_SOURCE 0 wq $0
PARAM_COMPARE 2 work_color != $0->flush_color
NOCHECK_CALL
LOCK2 0 &wq->mutex
TYPE_LOCK (struct workqueue_struct)->mutex

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

Type Parameter Key Value
PARAM_VALUE 0 wq 4096-ptr_max
PARAM_VALUE 0 wq->first_flusher 0
PARAM_VALUE 0 wq->flusher_overflow.prev->next 2906673126597898240
PARAM_VALUE 0 wq->flusher_overflow.prev->next->next 4096-ptr_max
PARAM_VALUE 0 wq->mutex.dep_map->name 0-255
PARAM_VALUE 0 wq->mutex.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 wq->mutex.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 wq->mutex.first_waiter->task->blocked_lock.dep_map->name 0-255
PARAM_VALUE 0 wq->mutex.first_waiter->task->blocked_lock.owner (-1)
PARAM_VALUE 0 wq->mutex.first_waiter->task->blocked_lock.owner_cpu 4294967295
PARAM_VALUE 0 wq->mutex.first_waiter->task->blocked_lock.raw_lock.val.counter s32min-s32max
PARAM_VALUE 0 wq->mutex.first_waiter->task->usage.refs.counter s32min-s32max
PARAM_VALUE 0 wq->mutex.osq.tail.counter 0-s32max
PARAM_VALUE 0 wq->mutex.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 wq->mutex.wait_lock.owner (-1)
PARAM_VALUE 0 wq->mutex.wait_lock.owner_cpu u32max
PARAM_VALUE 1 flush_color (-1)
CAPPED_DATA 0 wq->lockdep_map 1
CAPPED_DATA 0 &wq->flusher_overflow 1
CAPPED_DATA 0 &wq->flusher_queue 1
CAPPED_DATA 0 &wq->mutex 1
DATA_SOURCE 0 wq $0
DATA_SOURCE 2 work_color r work_next_color
NOCHECK_CALL
LOCK2 0 &wq->mutex
TYPE_LOCK (struct workqueue_struct)->mutex

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

Type Parameter Key Value
PARAM_VALUE 0 wq 4096-ptr_max
PARAM_VALUE 0 wq->first_flusher 4096-ptr_max
PARAM_VALUE 0 wq->first_flusher->done.wait.lock.dep_map->name 0-255
PARAM_VALUE 0 wq->flusher_overflow.prev->next 2906673126597898240
PARAM_VALUE 0 wq->flusher_overflow.prev->next->next 4096-ptr_max
PARAM_VALUE 0 wq->mutex.dep_map->name 0-255
PARAM_VALUE 0 wq->mutex.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 wq->mutex.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 wq->mutex.first_waiter->task->blocked_lock.dep_map->name 0-255
PARAM_VALUE 0 wq->mutex.first_waiter->task->blocked_lock.owner (-1)
PARAM_VALUE 0 wq->mutex.first_waiter->task->blocked_lock.owner_cpu 4294967295
PARAM_VALUE 0 wq->mutex.first_waiter->task->blocked_lock.raw_lock.val.counter s32min-s32max
PARAM_VALUE 0 wq->mutex.first_waiter->task->usage.refs.counter s32min-s32max
PARAM_VALUE 0 wq->mutex.osq.tail.counter 0-s32max
PARAM_VALUE 0 wq->mutex.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 wq->mutex.wait_lock.owner (-1)
PARAM_VALUE 0 wq->mutex.wait_lock.owner_cpu u32max
PARAM_VALUE 2 work_color (-1)
CAPPED_DATA 0 wq->lockdep_map 1
CAPPED_DATA 0 &wq->flusher_overflow 1
CAPPED_DATA 0 &wq->flusher_queue 1
CAPPED_DATA 0 &wq->mutex 1
DATA_SOURCE 0 wq $0
DATA_SOURCE 1 flush_color r work_next_color
PARAM_COMPARE 0 &wq->flusher_queue != $0->flusher_queue.next
LOCK2 0 &wq->mutex
TYPE_LOCK (struct workqueue_struct)->mutex