Defined in 1 files as a function:
Referenced in 7 files:
- block/blk-iocost.c, line 2682
- drivers/gpu/drm/i915/i915_sw_fence.c, line 385
- fs/orangefs/orangefs-bufmap.c, line 51
- include/linux/wait.h, line 203
- kernel/locking/percpu-rwsem.c, line 155
- kernel/sched/wait.c
- mm/filemap.c
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 | ¶ms->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 |