Defined in 1 files as a function:
Referenced in 10 files:
- block/blk-mq.c, line 1931
- drivers/gpu/drm/radeon/radeon_fence.c, line 413
- drivers/md/dm-integrity.c, line 1549
- drivers/md/dm-snap.c, line 1543
- fs/fs_pin.c, line 52
- include/linux/wait.h, line 191
- io_uring/io-wq.c, line 514
- kernel/sched/wait.c
- mm/userfaultfd.c
- net/unix/af_unix.c, line 531
Smatch caller information:
drivers/gpu/drm/radeon/radeon_fence.c radeon_fence_enable_signaling() -> __add_wait_queue()
| 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->flags | 0 |
| PARAM_VALUE | 1 | wq_entry->func | 3202912241785561088 |
| PARAM_VALUE | 1 | wq_entry->private | 0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | flags | ||
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | &pool->lock | ||
| HALF_LOCKED2 | &vm->lock | ||
| HALF_LOCKED2 | global &drm_unplug_srcu |
mm/userfaultfd.c handle_userfault() -> __add_wait_queue()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | wq_head | 4096-ptr_max |
| PARAM_VALUE | 1 | wq_entry | 7064042002420256800 |
| PARAM_VALUE | 1 | wq_entry->flags | 0 |
| PARAM_VALUE | 1 | wq_entry->func | 7324470384730882048 |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &ctx->fault_pending_wqh.lock | ||
| LOCK2 | irq | ||
| TYPE_LOCK | (struct wait_queue_head)->lock |
mm/userfaultfd.c userfaultfd_ctx_read() -> __add_wait_queue()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | wq_head | 4096-ptr_max |
| PARAM_VALUE | 1 | wq_entry | 7865308866326880256 |
| PARAM_VALUE | 1 | wq_entry->entry.next | 0 |
| PARAM_VALUE | 1 | wq_entry->entry.prev | 0 |
| PARAM_VALUE | 1 | wq_entry->flags | 0 |
| PARAM_VALUE | 1 | wq_entry->func | 3048851846701985792 |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &ctx->fd_wqh.lock | ||
| LOCK2 | irq | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct wait_queue_head)->lock |
mm/userfaultfd.c userfaultfd_ctx_read() -> __add_wait_queue()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | wq_head | 4096-ptr_max |
| PARAM_VALUE | 1 | wq_entry | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &ctx->event_wqh.lock | ||
| LOCK2 | irq | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct wait_queue_head)->lock |
mm/userfaultfd.c userfaultfd_event_wait_completion() -> __add_wait_queue()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | wq_head | 4096-ptr_max |
| PARAM_VALUE | 1 | wq_entry | 1763872162714255392,3564991124496838688,5202154492632735776,8589163653414457376 |
| PARAM_VALUE | 1 | wq_entry->flags | 0 |
| PARAM_VALUE | 1 | wq_entry->func | 3048851846701985792 |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &ctx->event_wqh.lock | ||
| LOCK2 | irq | ||
| TYPE_LOCK | (struct wait_queue_head)->lock |
block/blk-mq.c blk_mq_mark_tag_wait() -> __add_wait_queue()
| 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 |
| PARAM_VALUE | 1 | wq_entry->entry.next | 4096-ptr_max |
| PARAM_VALUE | 1 | wq_entry->flags | 0,2-u32max |
| BUF_SIZE | 0 | wq_head | 88 |
| BUF_SIZE | 1 | wq_entry | 40 |
| CAPPED_DATA | 1 | wq_entry->entry.next | 1 |
| CAPPED_DATA | 1 | &wq_entry->entry | 1 |
| PARAM_COMPARE | 1 | wq_entry->entry.next | == $1->entry.prev |
| PARAM_COMPARE | 1 | &wq_entry->entry | == $1->entry.next |
| BIT_INFO | 1 | wq_entry->flags | 0x0,0xfffffffe |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &hctx->dispatch_wait_lock | ||
| LOCK2 | irq | ||
| LOCK2 | 0 | &wq_head->lock | |
| HALF_LOCKED2 | __tag_set->srcu | ||
| HALF_LOCKED2 | rcu_read | ||
| TYPE_LOCK | (struct blk_mq_hw_ctx)->dispatch_wait_lock | ||
| TYPE_LOCK | (struct wait_queue_head)->lock |
drivers/md/dm-snap.c wait_for_in_progress() -> __add_wait_queue()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | wq_head | 4096-ptr_max |
| PARAM_VALUE | 1 | wq_entry | 4492213289293590528 |
| PARAM_VALUE | 1 | wq_entry->entry.next | 0 |
| PARAM_VALUE | 1 | wq_entry->entry.prev | 0 |
| PARAM_VALUE | 1 | wq_entry->flags | 0 |
| PARAM_VALUE | 1 | wq_entry->func | 3048851846701985792 |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &md->io_barrier | ||
| LOCK2 | &s->in_progress_wait.lock | ||
| HALF_LOCKED2 | &bio->bi_bdev->bd_queue->queue_lock | ||
| HALF_LOCKED2 | &md->swap_bios_semaphore | ||
| HALF_LOCKED2 | global &_origins_lock | ||
| TYPE_LOCK | (struct mapped_device)->io_barrier | ||
| TYPE_LOCK | (struct wait_queue_head)->lock |
io_uring/io-wq.c io_wait_on_hash() -> __add_wait_queue()
| 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 |
| PREEMPT_ADD | <- disables preempt | ||
| NOCHECK_CALL | |||
| LOCK2 | &wq->hash->wait.lock | ||
| LOCK2 | irq | ||
| TYPE_LOCK | (struct wait_queue_head)->lock |
net/unix/af_unix.c unix_dgram_peer_wake_connect() -> __add_wait_queue()
| 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->private | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &u_other->peer_wq.wait.lock | ||
| TYPE_LOCK | (struct wait_queue_head)->lock |
kernel/sched/build_utility.c add_wait_queue() -> __add_wait_queue()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | wq_entry | 4096-ptr_max |
| PARAM_VALUE | 1 | wq_entry->flags | 0,2-u32max |
| BUF_SIZE | 0 | wq_head | (-1),88 |
| BUF_SIZE | 0 | wq_head | (-1),88 |
| DATA_SOURCE | 0 | wq_head | $0 |
| DATA_SOURCE | 1 | wq_entry | $1 |
| BIT_INFO | 1 | wq_entry->flags | 0x0,0xfffffffe |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | flags | ||
| LOCK2 | 0 | &wq_head->lock | |
| HALF_LOCKED2 | &c->erase_completion_lock | ||
| HALF_LOCKED2 | &c->inocache_lock | ||
| HALF_LOCKED2 | &chip->mutex | ||
| HALF_LOCKED2 | &clcsk->sk_callback_lock | ||
| HALF_LOCKED2 | &client->mount_mutex | ||
| HALF_LOCKED2 | &ctl->read_lock | ||
| HALF_LOCKED2 | &ctx->fault_pending_wqh.lock | ||
| HALF_LOCKED2 | &ctx->fd_wqh.lock | ||
| HALF_LOCKED2 | &dev->attach_lock | ||
| HALF_LOCKED2 | &dev->dev.mutex | ||
| HALF_LOCKED2 | &dev->dev_mutex | ||
| HALF_LOCKED2 | &dev->irq_lock | ||
| HALF_LOCKED2 | &dev->mtx | ||
| HALF_LOCKED2 | &device->cbuf_lock | ||
| HALF_LOCKED2 | &ev->lock | ||
| HALF_LOCKED2 | &f->lock | ||
| HALF_LOCKED2 | &f->sem | ||
| HALF_LOCKED2 | &fepriv->sem | ||
| HALF_LOCKED2 | &khd->lock | ||
| HALF_LOCKED2 | &ldata->atomic_read_lock | ||
| HALF_LOCKED2 | &list->read_mutex | ||
| HALF_LOCKED2 | &log->gclock | ||
| HALF_LOCKED2 | &nn->bl_mutex | ||
| HALF_LOCKED2 | &p->event_mutex | ||
| HALF_LOCKED2 | &pool->lock | ||
| HALF_LOCKED2 | &proc->asts_spin | ||
| HALF_LOCKED2 | &res->spinlock | ||
| HALF_LOCKED2 | &rmidi->open_mutex | ||
| HALF_LOCKED2 | &rp->fetch_lock | ||
| HALF_LOCKED2 | &rp->printf_lock | ||
| HALF_LOCKED2 | &runtime->oss.params_lock | ||
| HALF_LOCKED2 | &sci->sc_state_lock | ||
| HALF_LOCKED2 | &substream->lock | ||
| HALF_LOCKED2 | &this->chip_lock | ||
| HALF_LOCKED2 | &tty->atomic_write_lock | ||
| HALF_LOCKED2 | &tty->ldisc_sem | ||
| HALF_LOCKED2 | &tty->termios_rwsem | ||
| HALF_LOCKED2 | &tu->ioctl_lock | ||
| HALF_LOCKED2 | &tu->qlock | ||
| HALF_LOCKED2 | &u->iolock | ||
| HALF_LOCKED2 | &uport->lock | ||
| HALF_LOCKED2 | &usblp->wmut | ||
| HALF_LOCKED2 | &vc->port.buf.lock | ||
| HALF_LOCKED2 | &vcp->vc_mutex | ||
| HALF_LOCKED2 | _T->lock | ||
| HALF_LOCKED2 | bh | ||
| HALF_LOCKED2 | flags | ||
| HALF_LOCKED2 | global &TxAnchor.LazyLock | ||
| HALF_LOCKED2 | global &ipmi_read_mutex | ||
| HALF_LOCKED2 | global &jfsLCacheLock | ||
| HALF_LOCKED2 | global &jfsTxnLock | ||
| HALF_LOCKED2 | global &pernet_ops_rwsem | ||
| HALF_LOCKED2 | global &resource_lock | ||
| HALF_LOCKED2 | irq | ||
| HALF_LOCKED2 | k->lock | ||
| HALF_LOCKED2 | rcu_read | ||
| HALF_LOCKED2 | sk | ||
| TYPE_LOCK | (struct wait_queue_head)->lock |
kernel/sched/build_utility.c add_wait_queue_priority() -> __add_wait_queue()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | wq_entry | 4096-ptr_max |
| PARAM_VALUE | 1 | wq_entry->flags | 0,16-u32max |
| DATA_SOURCE | 0 | wq_head | $0 |
| DATA_SOURCE | 1 | wq_entry | $1 |
| BIT_INFO | 1 | wq_entry->flags | 0x10,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() -> __add_wait_queue()
| 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 | 0,2-u32max |
| BUF_SIZE | 0 | wq_head | (-1),88 |
| BUF_SIZE | 0 | wq_head | (-1),88 |
| 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 | 0x0,0xfffffffe |
| 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 | &adc_dev->fifo1_lock | ||
| HALF_LOCKED2 | &ailp->ail_lock | ||
| HALF_LOCKED2 | &bebob->lock | ||
| HALF_LOCKED2 | &bitmap->counts.lock | ||
| HALF_LOCKED2 | &bus->reg_lock | ||
| HALF_LOCKED2 | &c->btree_cannibalize_lock | ||
| HALF_LOCKED2 | &c->bucket_lock | ||
| HALF_LOCKED2 | &ctx->uring_lock | ||
| HALF_LOCKED2 | &dev->io_mutex | ||
| HALF_LOCKED2 | &dev->power.lock | ||
| HALF_LOCKED2 | &device->peer_seq_lock | ||
| HALF_LOCKED2 | &device->resource->req_lock | ||
| HALF_LOCKED2 | &dg00x->lock | ||
| HALF_LOCKED2 | &dice->lock | ||
| HALF_LOCKED2 | &efw->lock | ||
| HALF_LOCKED2 | &ep->buffer_lock | ||
| HALF_LOCKED2 | &ep->ex_lock | ||
| HALF_LOCKED2 | &ff->lock | ||
| HALF_LOCKED2 | &fifo_state->fifo_mutex | ||
| HALF_LOCKED2 | &gl->gl_lockref.lock | ||
| HALF_LOCKED2 | &hi->lock | ||
| HALF_LOCKED2 | &hwmon->hwmon_lock | ||
| HALF_LOCKED2 | &info->lock | ||
| HALF_LOCKED2 | &inode->i_lock | ||
| HALF_LOCKED2 | &itv->serialize_lock | ||
| HALF_LOCKED2 | &itv->udma.lock | ||
| HALF_LOCKED2 | &journal->j_list_lock | ||
| HALF_LOCKED2 | &journal->j_state_lock | ||
| HALF_LOCKED2 | &list->thread_lock | ||
| HALF_LOCKED2 | &md->suspend_lock | ||
| HALF_LOCKED2 | &motu->lock | ||
| HALF_LOCKED2 | &nn->nfsd_ssc_lock | ||
| HALF_LOCKED2 | &of->mutex | ||
| HALF_LOCKED2 | &oxfw->lock | ||
| HALF_LOCKED2 | &par->lock | ||
| HALF_LOCKED2 | &pipe->mutex | ||
| HALF_LOCKED2 | &pool->lock | ||
| HALF_LOCKED2 | &port->serial->disc_mutex | ||
| HALF_LOCKED2 | &proc->inner_lock | ||
| HALF_LOCKED2 | &resource->req_lock | ||
| HALF_LOCKED2 | &root->kernfs_rwsem | ||
| HALF_LOCKED2 | &root->kernfs_supers_rwsem | ||
| HALF_LOCKED2 | &root->log_mutex | ||
| HALF_LOCKED2 | &solo_dev->i2c_mutex | ||
| HALF_LOCKED2 | &sqd->lock | ||
| HALF_LOCKED2 | &state->owner->so_lock | ||
| HALF_LOCKED2 | &state->seqlock.lock | ||
| HALF_LOCKED2 | &tree->lock | ||
| HALF_LOCKED2 | &tscadc->reg_lock | ||
| HALF_LOCKED2 | &tscm->lock | ||
| HALF_LOCKED2 | &wc->lock | ||
| HALF_LOCKED2 | &zmd->map_lock | ||
| HALF_LOCKED2 | _T->lock | ||
| HALF_LOCKED2 | ap->lock | ||
| HALF_LOCKED2 | bh | ||
| HALF_LOCKED2 | flags | ||
| HALF_LOCKED2 | global &bch_register_lock | ||
| HALF_LOCKED2 | global &bdev_lock | ||
| HALF_LOCKED2 | global &cgroup_mutex | ||
| HALF_LOCKED2 | global &flush_lock | ||
| HALF_LOCKED2 | global &sess_lock | ||
| HALF_LOCKED2 | global &speakup_info.spinlock | ||
| HALF_LOCKED2 | global &spk_mutex | ||
| HALF_LOCKED2 | global &umhelper_sem | ||
| HALF_LOCKED2 | irq | ||
| HALF_LOCKED2 | listener | ||
| HALF_LOCKED2 | mb_lock | ||
| HALF_LOCKED2 | rcu_read | ||
| HALF_LOCKED2 | sk | ||
| TYPE_LOCK | (struct wait_queue_head)->lock |
kernel/sched/build_utility.c prepare_to_wait_event() -> __add_wait_queue()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | wq_entry | 4096-ptr_max |
| PARAM_VALUE | 1 | wq_entry->entry.next | 4096-ptr_max |
| 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 | 0x0,0xfffffffe |
| PREEMPT_ADD | <- disables preempt | ||
| NOCHECK_CALL | |||
| LOCK2 | flags | ||
| LOCK2 | 0 | &wq_head->lock | |
| TYPE_LOCK | (struct wait_queue_head)->lock |
drivers/md/dm-integrity.c sleep_on_endio_wait() -> __add_wait_queue()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | wq_head | 4096-ptr_max |
| PARAM_VALUE | 1 | wq_entry | 1686202123944583168 |
| PARAM_VALUE | 1 | wq_entry->entry.next | 0 |
| PARAM_VALUE | 1 | wq_entry->entry.prev | 0 |
| PARAM_VALUE | 1 | wq_entry->flags | 0 |
| PARAM_VALUE | 1 | wq_entry->func | 3048851846701985792 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| NOCHECK_CALL | |||
| LOCK2 | &ic->endio_wait.lock | ||
| LOCK2 | irq | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct wait_queue_head)->lock |
fs/eventpoll.c __add_wait_queue_exclusive() -> __add_wait_queue()
| 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->func | 8748672019257929728 |
| DATA_SOURCE | 0 | wq_head | $0 |
| DATA_SOURCE | 1 | wq_entry | $1 |
| BIT_INFO | 1 | wq_entry->flags | 0x1,0xffffffff |
| PREEMPT_ADD | |||
| NOCHECK_CALL | |||
| LOCK2 | &ep->lock | ||
| LOCK2 | irq | ||
| TYPE_LOCK | (struct eventpoll)->lock |
fs/fs_pin.c pin_kill() -> __add_wait_queue()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | wq_head | 4096-ptr_max |
| PARAM_VALUE | 1 | wq_entry | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &p->wait.lock | ||
| LOCK2 | irq | ||
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | global &acct_on_mutex | ||
| TYPE_LOCK | (struct wait_queue_head)->lock |