Documented in 1 files:

Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 16 files:

Smatch caller information:

drivers/firmware/arm_scmi/transports/virtio.c scmi_vio_complete_cb() -> virtqueue_enable_cb()

Type Parameter Key Value
PARAM_VALUE 0 _vq 4096-ptr_max
PARAM_VALUE 0 _vq->vdev 4096-ptr_max
PARAM_VALUE 0 _vq->vdev->priv 4096-ptr_max
DATA_SOURCE 0 _vq $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &vioch->lock
LOCK2 flags
TYPE_LOCK (struct scmi_vio_channel)->lock

drivers/firmware/arm_scmi/transports/virtio.c virtio_poll_done() -> virtqueue_enable_cb()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &vioch->lock
LOCK2 flags
HALF_LOCKED2 &cinfo->transport_info->chan_lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct scmi_vio_channel)->lock

drivers/scsi/virtio_scsi.c virtscsi_vq_done() -> virtqueue_enable_cb()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &virtscsi_vq->vq_lock
LOCK2 flags
TYPE_LOCK (struct virtio_scsi_vq)->vq_lock

drivers/gpu/drm/virtio/virtgpu_vq.c virtio_gpu_dequeue_ctrl_func() -> virtqueue_enable_cb()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
LOCK2 &vgdev->ctrlq.qlock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct virtio_gpu_queue)->qlock

drivers/gpu/drm/virtio/virtgpu_vq.c virtio_gpu_dequeue_cursor_func() -> virtqueue_enable_cb()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
LOCK2 &vgdev->cursorq.qlock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct virtio_gpu_queue)->qlock

drivers/virtio/virtio_rtc_driver.c viortc_do_cb() -> virtqueue_enable_cb()

Type Parameter Key Value
PARAM_VALUE 0 _vq 4096-ptr_max
PARAM_VALUE 0 _vq->callback 1-u64max
PARAM_VALUE 0 _vq->vdev 4096-ptr_max
DATA_SOURCE 0 _vq $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &viortc_vq->lock
LOCK2 flags
HALF_LOCKED2 &desc->request_mutex
HALF_LOCKED2 &vp_dev->lock
HALF_LOCKED2 _T->lock
HALF_LOCKED2 flags
TYPE_LOCK (struct viortc_vq)->lock

net/vmw_vsock/virtio_transport.c virtio_transport_event_work() -> virtqueue_enable_cb()

Type Parameter Key Value
LOCK2 &vsock->event_lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct virtio_vsock)->event_lock

net/vmw_vsock/virtio_transport.c virtio_transport_rx_work() -> virtqueue_enable_cb()

Type Parameter Key Value
RX_PATH
LOCK2 &vsock->rx_lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct virtio_vsock)->rx_lock

net/vmw_vsock/virtio_transport.c virtio_transport_tx_work() -> virtqueue_enable_cb()

Type Parameter Key Value
LOCK2 &vsock->tx_lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct virtio_vsock)->tx_lock

drivers/crypto/virtio/virtio_crypto_core.c virtcrypto_ctrlq_callback() -> virtqueue_enable_cb()

Type Parameter Key Value
PARAM_VALUE 0 _vq 4096-ptr_max
PARAM_VALUE 0 _vq->callback 1-u64max
PARAM_VALUE 0 _vq->vdev 4096-ptr_max
DATA_SOURCE 0 _vq $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &vcrypto->ctrl_lock
LOCK2 flags
HALF_LOCKED2 &desc->request_mutex
HALF_LOCKED2 &vp_dev->lock
HALF_LOCKED2 _T->lock
HALF_LOCKED2 flags
HALF_LOCKED2 irq
TYPE_LOCK (struct virtio_crypto)->ctrl_lock

drivers/crypto/virtio/virtio_crypto_core.c virtcrypto_done_work() -> virtqueue_enable_cb()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
LOCK2 &data_vq->lock
LOCK2 flags
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct data_queue)->lock

drivers/virtio/virtio_pci_modern.c vp_modern_avq_done() -> virtqueue_enable_cb()

Type Parameter Key Value
PARAM_VALUE 0 _vq 4096-ptr_max
DATA_SOURCE 0 _vq $0
PREEMPT_ADD <- disables preempt
LOCK2 &admin_vq->lock
LOCK2 flags
TYPE_LOCK (struct virtio_pci_admin_vq)->lock

fs/fuse/virtio_fs.c virtio_fs_hiprio_done_work() -> virtqueue_enable_cb()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
LOCK2 &fsvq->lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct virtio_fs_vq)->lock

fs/fuse/virtio_fs.c virtio_fs_requests_done_work() -> virtqueue_enable_cb()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
LOCK2 &fsvq->lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct virtio_fs_vq)->lock

drivers/rpmsg/virtio_rpmsg_bus.c virtio_rpmsg_poll() -> virtqueue_enable_cb()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 &vrp->tx_lock
HALF_LOCKED2 &eptdev->ept_lock
HALF_LOCKED2 &kvm->irq_srcu
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &port->ops_lock
HALF_LOCKED2 &vm->irqfds_lock
HALF_LOCKED2 global &irqfds_srcu
TYPE_LOCK (struct virtproc_info)->tx_lock

sound/virtio/virtio_card.c virtsnd_enable_event_vq() -> virtqueue_enable_cb()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING

sound/virtio/virtio_card.c virtsnd_event_notify_cb() -> virtqueue_enable_cb()

Type Parameter Key Value
PARAM_VALUE 0 _vq 4096-ptr_max
PARAM_VALUE 0 _vq->vdev 4096-ptr_max
DATA_SOURCE 0 _vq $0
RX_PATH
TASK_NOT_RUNNING
LOCK2 &queue->lock
LOCK2 irq
TYPE_LOCK (struct virtio_snd_queue)->lock

drivers/block/virtio_blk.c virtblk_done() -> virtqueue_enable_cb()

Type Parameter Key Value
PARAM_VALUE 0 _vq 4096-ptr_max
PARAM_VALUE 0 _vq->callback 1-u64max
PARAM_VALUE 0 _vq->vdev 4096-ptr_max
DATA_SOURCE 0 _vq $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 flags
HALF_LOCKED2 &desc->request_mutex
HALF_LOCKED2 &vp_dev->lock
HALF_LOCKED2 _T->lock
HALF_LOCKED2 flags
HALF_LOCKED2 irq

sound/virtio/virtio_pcm_msg.c virtsnd_pcm_notify_cb() -> virtqueue_enable_cb()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 &queue->lock
LOCK2 irq
HALF_LOCKED2 &desc->request_mutex
HALF_LOCKED2 &vp_dev->lock
HALF_LOCKED2 _T->lock
HALF_LOCKED2 flags
TYPE_LOCK (struct virtio_snd_queue)->lock

sound/virtio/virtio_ctl_msg.c virtsnd_ctl_notify_cb() -> virtqueue_enable_cb()

Type Parameter Key Value
PARAM_VALUE 0 _vq 4096-ptr_max
PARAM_VALUE 0 _vq->callback 1-u64max
PARAM_VALUE 0 _vq->vdev 4096-ptr_max
DATA_SOURCE 0 _vq $0
RX_PATH
TASK_NOT_RUNNING
LOCK2 &queue->lock
LOCK2 irq
HALF_LOCKED2 &desc->request_mutex
HALF_LOCKED2 &vp_dev->lock
HALF_LOCKED2 _T->lock
HALF_LOCKED2 flags
TYPE_LOCK (struct virtio_snd_queue)->lock