Defined in 1 files as a function:

Referenced in 7 files:

Smatch caller information:

kernel/locking/percpu-rwsem.c percpu_rwsem_wait() -> __add_wait_queue_entry_tail()

Type Parameter Key Value
PARAM_VALUE 0 wq_head 4096-ptr_max
PARAM_VALUE 1 wq_entry 6989058721972064256
PARAM_VALUE 1 wq_entry->entry.next 6989058721972064280
PARAM_VALUE 1 wq_entry->entry.prev 6989058721972064280
PARAM_VALUE 1 wq_entry->flags 1-5
PARAM_VALUE 1 wq_entry->func 1404890190167265280
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &sem->waiters.lock
LOCK2 irq
TYPE_LOCK (struct wait_queue_head)->lock

block/blk-iocost.c iocg_handle_over_budget() -> __add_wait_queue_entry_tail()

Type Parameter Key Value
PARAM_VALUE 0 wq_head 4096-ptr_max
PARAM_VALUE 1 wq_entry 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &iocg->waitq.lock
LOCK2 flags
HALF_LOCKED2 &bio->bi_bdev->bd_queue->queue_lock
HALF_LOCKED2 &iocg->ioc->lock
TYPE_LOCK (struct wait_queue_head)->lock

mm/filemap.c __folio_lock_async() -> __add_wait_queue_entry_tail()

Type Parameter Key Value
PARAM_VALUE 0 wq_head 4096-ptr_max
PARAM_VALUE 0 wq_head->lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 wq_entry 4096-ptr_max
DATA_SOURCE 0 wq_head r folio_waitqueue
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &mapping->invalidate_lock
LOCK2 irq
LOCK2 0 &wq_head->lock
HALF_LOCKED2 &inode->i_rwsem
TYPE_LOCK (struct address_space)->invalidate_lock
TYPE_LOCK (struct wait_queue_head)->lock

mm/filemap.c folio_wait_bit_common() -> __add_wait_queue_entry_tail()

Type Parameter Key Value
PARAM_VALUE 0 wq_head 4096-ptr_max
PARAM_VALUE 0 wq_head->lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 wq_entry 5005949605859762192
PARAM_VALUE 1 wq_entry->entry.next 4096-ptr_max
PARAM_VALUE 1 wq_entry->entry.next->next 5005949605859762216
PARAM_VALUE 1 wq_entry->entry.prev->next 5005949605859762216
PARAM_VALUE 1 wq_entry->entry.prev->prev 5005949605859762216
PARAM_VALUE 1 wq_entry->flags 0-1,5
PARAM_VALUE 1 wq_entry->func 8313850349192409088
BUF_SIZE 1 wq_entry 40
DATA_SOURCE 0 wq_head r folio_waitqueue
FUZZY_MAX 1 wq_entry->flags 1
BIT_INFO 1 wq_entry->flags 0x0,0x5
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 irq
LOCK2 0 &wq_head->lock
TYPE_LOCK (struct wait_queue_head)->lock

mm/filemap.c softleaf_entry_wait_on_locked() -> __add_wait_queue_entry_tail()

Type Parameter Key Value
PARAM_VALUE 0 wq_head 4096-ptr_max
PARAM_VALUE 0 wq_head->lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 wq_entry 5258099179438960656
PARAM_VALUE 1 wq_entry->entry.next 5258099179438960680
PARAM_VALUE 1 wq_entry->entry.next->next 5258099179438960680
PARAM_VALUE 1 wq_entry->entry.prev 5258099179438960680
PARAM_VALUE 1 wq_entry->entry.prev->next 5258099179438960680
PARAM_VALUE 1 wq_entry->entry.prev->prev 5258099179438960680
PARAM_VALUE 1 wq_entry->flags 0
PARAM_VALUE 1 wq_entry->func 8313850349192409088
BUF_SIZE 1 wq_entry 40
DATA_SOURCE 0 wq_head r folio_waitqueue
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 irq
LOCK2 0 &wq_head->lock
HALF_LOCKED2 ptl
TYPE_LOCK (struct wait_queue_head)->lock

fs/orangefs/orangefs-bufmap.c __add_wait_queue_entry_tail_exclusive() -> __add_wait_queue_entry_tail()

Type Parameter Key Value
PARAM_VALUE 0 wq_head 26143436197584904,394519787133861896
PARAM_VALUE 1 wq_entry 6447016512110563328
PARAM_VALUE 1 wq_entry->entry.next 4096-ptr_max
PARAM_VALUE 1 wq_entry->flags 1-2
PARAM_VALUE 1 wq_entry->func 2781442524753911808
DATA_SOURCE 0 wq_head $0
DATA_SOURCE 1 wq_entry $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &m->q.lock
TYPE_LOCK (struct wait_queue_head)->lock

fs/orangefs/orangefs-bufmap.c run_down() -> __add_wait_queue_entry_tail()

Type Parameter Key Value
PARAM_VALUE 0 wq_head 26143436197584904,394519787133861896
PARAM_VALUE 1 wq_entry 5375368893441257472
PARAM_VALUE 1 wq_entry->entry.next 4096-ptr_max
PARAM_VALUE 1 wq_entry->flags 0
PARAM_VALUE 1 wq_entry->func 2781442524753911808
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &m->q.lock
LOCK2 global &devreq_mutex
TYPE_LOCK (struct wait_queue_head)->lock

kernel/sched/build_utility.c add_wait_queue_exclusive() -> __add_wait_queue_entry_tail()

Type Parameter Key Value
PARAM_VALUE 1 wq_entry 4096-ptr_max
DATA_SOURCE 0 wq_head $0
DATA_SOURCE 1 wq_entry $1
BIT_INFO 1 wq_entry->flags 0x1,0xffffffff
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 flags
LOCK2 0 &wq_head->lock
HALF_LOCKED2 &cil->xc_push_lock
HALF_LOCKED2 &log->l_icloglock
HALF_LOCKED2 global &nl_table_lock
HALF_LOCKED2 irq
HALF_LOCKED2 sk
TYPE_LOCK (struct wait_queue_head)->lock

kernel/sched/build_utility.c do_wait_intr() -> __add_wait_queue_entry_tail()

Type Parameter Key Value
PARAM_VALUE 0 wq_head 4096-ptr_max
PARAM_VALUE 1 wq_entry 2275009796715024384,2842945645351288832,3442178523697147904,5869410586958696448,8817709402748715008
PARAM_VALUE 1 wq_entry->entry.next 4096-ptr_max
PARAM_VALUE 1 wq_entry->flags 0
PARAM_VALUE 1 wq_entry->func 2781442524753911808
CAPPED_DATA 1 &wq_entry->entry 1
DATA_SOURCE 0 wq_head $0
DATA_SOURCE 1 wq_entry $1
PARAM_COMPARE 1 &wq_entry->entry == $1->entry.next
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &cdev->wait.lock
HALF_LOCKED2 &le->wait.lock
HALF_LOCKED2 &lr->wait.lock
HALF_LOCKED2 &priv->wait_event.lock
HALF_LOCKED2 &sa_manager->wq.lock
HALF_LOCKED2 _T->lock
TYPE_LOCK (struct wait_queue_head)->lock

kernel/sched/build_utility.c do_wait_intr_irq() -> __add_wait_queue_entry_tail()

Type Parameter Key Value
PARAM_VALUE 0 wq_head 4096-ptr_max
PARAM_VALUE 1 wq_entry 4096-ptr_max
PARAM_VALUE 1 wq_entry->entry.next 4096-ptr_max
PARAM_VALUE 1 wq_entry->flags 0-1
PARAM_VALUE 1 wq_entry->func 2781442524753911808
CAPPED_DATA 1 &wq_entry->entry 1
DATA_SOURCE 0 wq_head $0
DATA_SOURCE 1 wq_entry $1
PARAM_COMPARE 1 &wq_entry->entry == $1->entry.next
HARD_MAX 1 wq_entry->flags 1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &ctx->wqh.lock
HALF_LOCKED2 &drvdata->wq.lock
HALF_LOCKED2 &ffs->ev.waitq.lock
HALF_LOCKED2 &flow->resume_tx.lock
HALF_LOCKED2 &fp->private_data->clk->rwsem
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &params->atqbal_wq.lock
HALF_LOCKED2 &port->rx_wq.lock
HALF_LOCKED2 _T->lock
HALF_LOCKED2 flags
HALF_LOCKED2 irq
TYPE_LOCK (struct wait_queue_head)->lock

kernel/sched/build_utility.c prepare_to_wait_event() -> __add_wait_queue_entry_tail()

Type Parameter Key Value
PARAM_VALUE 1 wq_entry 4096-ptr_max
PARAM_VALUE 1 wq_entry->entry.next 4096-ptr_max
PARAM_VALUE 1 wq_entry->flags 1-u32max
CAPPED_DATA 1 &wq_entry->entry 1
DATA_SOURCE 0 wq_head $0
DATA_SOURCE 1 wq_entry $1
PARAM_COMPARE 1 &wq_entry->entry == $1->entry.next
BIT_INFO 1 wq_entry->flags 0x1,0xffffffff
PREEMPT_ADD <- disables preempt
NOCHECK_CALL
LOCK2 flags
LOCK2 0 &wq_head->lock
TYPE_LOCK (struct wait_queue_head)->lock

kernel/sched/build_utility.c prepare_to_wait_exclusive() -> __add_wait_queue_entry_tail()

Type Parameter Key Value
PARAM_VALUE 0 wq_head 4096-ptr_max
PARAM_VALUE 1 wq_entry 4096-ptr_max
PARAM_VALUE 1 wq_entry->entry.next 4096-ptr_max
PARAM_VALUE 1 wq_entry->func 665988654474457088,1875909954357612544,2781442524753911808,3289640335819112448,8290915061659934720
CAPPED_DATA 0 &wq_head->head 1
CAPPED_DATA 1 &wq_entry->entry 1
DATA_SOURCE 0 wq_head $0
DATA_SOURCE 1 wq_entry $1
PARAM_COMPARE 1 &wq_entry->entry == $1->entry.next
BIT_INFO 1 wq_entry->flags 0x1,0xffffffff
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 flags
LOCK2 0 &wq_head->lock
HALF_LOCKED2 &((&xas)->xa)->xa_lock
HALF_LOCKED2 &journal->j_state_lock
HALF_LOCKED2 &md->io_barrier
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &sk->sk_lock.slock
HALF_LOCKED2 bh
HALF_LOCKED2 irq
HALF_LOCKED2 sk
TYPE_LOCK (struct wait_queue_head)->lock

fs/ubifs/journal.c __add_wait_queue_entry_tail_exclusive() -> __add_wait_queue_entry_tail()

Type Parameter Key Value
PARAM_VALUE 0 wq_head 4096-ptr_max
PARAM_VALUE 1 wq_entry 1991324465664376832
PARAM_VALUE 1 wq_entry->entry.next 1991324465664376856
PARAM_VALUE 1 wq_entry->entry.prev 1991324465664376856
PARAM_VALUE 1 wq_entry->flags 1
PARAM_VALUE 1 wq_entry->func 2781442524753911808
DATA_SOURCE 0 wq_head $0
DATA_SOURCE 1 wq_entry $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &c->reserve_space_wq.lock
HALF_LOCKED2 &c->write_reserve_mutex
HALF_LOCKED2 &host_ui->ui_mutex
HALF_LOCKED2 &ui->ui_mutex
TYPE_LOCK (struct wait_queue_head)->lock

drivers/gpu/drm/i915/i915_sw_fence.c __i915_sw_fence_await_sw_fence() -> __add_wait_queue_entry_tail()

Type Parameter Key Value
PARAM_VALUE 0 wq_head 4096-ptr_max
PARAM_VALUE 1 wq_entry 4096-ptr_max
PARAM_VALUE 1 wq_entry->entry.next 4096-ptr_max
PARAM_VALUE 1 wq_entry->entry.next->next 4096-ptr_max
PARAM_VALUE 1 wq_entry->entry.prev 4096-ptr_max
PARAM_VALUE 1 wq_entry->entry.prev->next 4096-ptr_max
PARAM_VALUE 1 wq_entry->entry.prev->prev 4096-ptr_max
PARAM_VALUE 1 wq_entry->flags 2147483648,3221225472
PARAM_VALUE 1 wq_entry->func 2865601093951160320
PARAM_VALUE 1 wq_entry->private 4096-ptr_max
BUF_SIZE 1 wq_entry 40,u64max
BUF_SIZE 1 wq_entry 40,u64max
BUF_SIZE 1 wq_entry->private (-1),112
DATA_SOURCE 1 wq_entry $2 [m]
BIT_INFO 1 wq_entry->flags 0x80000000,0xc0000000
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &signaler->wait.lock
LOCK2 flags
TYPE_LOCK (struct wait_queue_head)->lock