Documented in 1 files:

Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 30 files:

Smatch caller information:

drivers/misc/nsm.c nsm_sendrecv_msg_locked() -> virtqueue_kick()

Type Parameter Key Value
LOCK2 &nsm->lock
TYPE_LOCK (struct nsm)->lock

net/9p/trans_virtio.c p9_virtio_request() -> virtqueue_kick()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &chan->lock
LOCK2 flags
HALF_LOCKED2 &client->trans->sq_sem
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &v9ses->rename_sem
TYPE_LOCK (struct virtio_chan)->lock

net/9p/trans_virtio.c p9_virtio_zc_request() -> virtqueue_kick()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &chan->lock
LOCK2 flags
HALF_LOCKED2 &inode->i_rwsem
TYPE_LOCK (struct virtio_chan)->lock

drivers/net/wireless/virtual/mac80211_hwsim_main.c fill_vq() -> virtqueue_kick()

Type Parameter Key Value
DATA_SOURCE 0 vq $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/net/wireless/virtual/mac80211_hwsim_main.c hwsim_tx_virtio() -> virtqueue_kick()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 flags
LOCK2 global &hwsim_virtio_lock
HALF_LOCKED2 &data->mutex

drivers/net/wireless/virtual/mac80211_hwsim_main.c hwsim_virtio_rx_work() -> virtqueue_kick()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
RX_PATH
NOCHECK_CALL
LOCK2 flags
LOCK2 global &hwsim_virtio_lock
HALF_LOCKED2 &pool->lock

drivers/char/hw_random/virtio-rng.c request_entropy() -> virtqueue_kick()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/crypto/virtio/virtio_crypto_akcipher_algs.c __virtio_crypto_akcipher_do_req() -> virtqueue_kick()

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

drivers/virtio/virtio_ring.c virtqueue_add_split() -> virtqueue_kick()

Type Parameter Key Value
PARAM_VALUE 0 vq 4096-ptr_max
PARAM_VALUE 0 vq->num_free 1-2147483646
NOCHECK_CALL

drivers/net/can/virtio_can.c virtio_can_populate_rx_vq() -> virtqueue_kick()

Type Parameter Key Value
PARAM_VALUE 0 vq 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/net/can/virtio_can.c virtio_can_read_rx_queue() -> virtqueue_kick()

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
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 bh
HALF_LOCKED2 rcu_read

drivers/net/can/virtio_can.c virtio_can_send_ctrl_msg() -> virtqueue_kick()

Type Parameter Key Value
PARAM_VALUE 0 vq 1-u64max
RX_PATH
TASK_NOT_RUNNING
LOCK2 _T->lock
HALF_LOCKED2 &ndev->ethtool->rss_lock
HALF_LOCKED2 &ndev->lock

drivers/net/can/virtio_can.c virtio_can_start_xmit() -> virtqueue_kick()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 &priv->tx_lock
LOCK2 irq
HALF_LOCKED2 &dev->tx_global_lock
HALF_LOCKED2 &txq->_xmit_lock
HALF_LOCKED2 bh
HALF_LOCKED2 flags
HALF_LOCKED2 rcu_read
TYPE_LOCK (struct virtio_can_priv)->tx_lock

drivers/iommu/virtio-iommu.c __viommu_sync_req() -> virtqueue_kick()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &viommu->request_lock
HALF_LOCKED2 flags
TYPE_LOCK (struct viommu_dev)->request_lock

drivers/iommu/virtio-iommu.c viommu_event_handler() -> virtqueue_kick()

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
NOCHECK_CALL
HALF_LOCKED2 &desc->request_mutex
HALF_LOCKED2 &vp_dev->lock
HALF_LOCKED2 _T->lock
HALF_LOCKED2 flags
HALF_LOCKED2 irq

drivers/virtio/virtio_mem.c virtio_mem_send_request() -> virtqueue_kick()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &vm->hotplug_mutex
HALF_LOCKED2 global &vmcore_cb_srcu

drivers/firmware/arm_scmi/transports/virtio.c scmi_vio_feed_vq_rx() -> virtqueue_kick()

Type Parameter Key Value
PARAM_VALUE 0 vq 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &vioch->lock
LOCK2 flags
TYPE_LOCK (struct scmi_vio_channel)->lock

drivers/firmware/arm_scmi/transports/virtio.c virtio_send_message() -> virtqueue_kick()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &vioch->lock
LOCK2 flags
TYPE_LOCK (struct scmi_vio_channel)->lock

drivers/crypto/virtio/virtio_crypto_skcipher_algs.c __virtio_crypto_skcipher_do_req() -> virtqueue_kick()

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

drivers/gpio/gpio-virtio.c _virtio_gpio_req() -> virtqueue_kick()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &line->lock
LOCK2 &vgpio->lock
TYPE_LOCK (struct virtio_gpio)->lock
TYPE_LOCK (struct virtio_gpio_line)->lock

drivers/gpio/gpio-virtio.c virtio_gpio_irq_prepare() -> virtqueue_kick()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &vgpio->eventq_lock
HALF_LOCKED2 flags
TYPE_LOCK (struct virtio_gpio)->eventq_lock

drivers/scsi/virtio_scsi.c virtscsi_kick_event() -> virtqueue_kick()

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

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

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

net/vmw_vsock/virtio_transport.c virtio_transport_send_pkt_work() -> virtqueue_kick()

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

net/vmw_vsock/virtio_transport.c virtio_transport_send_skb_fast_path() -> virtqueue_kick()

Type Parameter Key Value
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &vsock->tx_lock
LOCK2 rcu_read
HALF_LOCKED2 sk
TYPE_LOCK (struct virtio_vsock)->tx_lock

net/vmw_vsock/virtio_transport.c virtio_vsock_event_fill() -> virtqueue_kick()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &vsock->event_lock
LOCK2 global &the_virtio_vsock_mutex
TYPE_LOCK (struct virtio_vsock)->event_lock

net/vmw_vsock/virtio_transport.c virtio_vsock_rx_fill() -> virtqueue_kick()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &vsock->rx_lock
HALF_LOCKED2 global &the_virtio_vsock_mutex
TYPE_LOCK (struct virtio_vsock)->rx_lock

drivers/crypto/virtio/virtio_crypto_core.c virtio_crypto_ctrl_vq_request() -> virtqueue_kick()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &vcrypto->ctrl_lock
LOCK2 flags
TYPE_LOCK (struct virtio_crypto)->ctrl_lock

drivers/virtio/virtio_balloon.c get_free_page_and_send() -> virtqueue_kick()

Type Parameter Key Value
PARAM_VALUE 0 vq 4096-ptr_max
PARAM_VALUE 0 vq->num_free 2-u32max
FUZZY_MAX 0 vq->num_free 2
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

drivers/virtio/virtio_balloon.c send_cmd_id_start() -> virtqueue_kick()

Type Parameter Key Value
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

drivers/virtio/virtio_balloon.c send_cmd_id_stop() -> virtqueue_kick()

Type Parameter Key Value
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

drivers/virtio/virtio_balloon.c setup_vqs() -> virtqueue_kick()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/virtio/virtio_balloon.c stats_handle_request() -> virtqueue_kick()

Type Parameter Key Value
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

drivers/virtio/virtio_balloon.c tell_host() -> virtqueue_kick()

Type Parameter Key Value
DATA_SOURCE 0 vq $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &vb->balloon_lock
TYPE_LOCK (struct virtio_balloon)->balloon_lock

drivers/virtio/virtio_balloon.c virtballoon_free_page_report() -> virtqueue_kick()

Type Parameter Key Value
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

drivers/bluetooth/virtio_bt.c virtbt_open_vdev() -> virtqueue_kick()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/bluetooth/virtio_bt.c virtbt_rx_work() -> virtqueue_kick()

Type Parameter Key Value
RX_PATH
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

drivers/bluetooth/virtio_bt.c virtbt_send_frame() -> virtqueue_kick()

Type Parameter Key Value
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &hdev->req_lock

drivers/virtio/virtio_pci_modern.c virtqueue_exec_admin_cmd() -> virtqueue_kick()

Type Parameter Key Value
PARAM_VALUE 0 vq 1-u64max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &admin_vq->lock
LOCK2 flags
HALF_LOCKED2 &migf->lock
HALF_LOCKED2 &migf->virtvdev->state_mutex
HALF_LOCKED2 &virtvdev->state_mutex
HALF_LOCKED2 _T->lock
TYPE_LOCK (struct virtio_pci_admin_vq)->lock

drivers/nvdimm/nd_virtio.c virtio_pmem_flush() -> virtqueue_kick()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &vpmem->pmem_lock
LOCK2 _T->lock
LOCK2 flags
TYPE_LOCK (struct virtio_pmem)->pmem_lock

drivers/char/virtio_console.c __send_control_msg() -> virtqueue_kick()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &portdev->c_ovq_lock
TYPE_LOCK (struct ports_device)->c_ovq_lock

drivers/char/virtio_console.c __send_to_port() -> virtqueue_kick()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &port->outvq_lock
LOCK2 flags
TYPE_LOCK (struct port)->outvq_lock

drivers/char/virtio_console.c add_inbuf() -> virtqueue_kick()

Type Parameter Key Value
DATA_SOURCE 0 vq $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &port->inbuf_lock
HALF_LOCKED2 &portdev->c_ivq_lock
HALF_LOCKED2 flags
HALF_LOCKED2 irq
HALF_LOCKED2 lock

drivers/rpmsg/virtio_rpmsg_bus.c rpmsg_recv_done() -> virtqueue_kick()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &desc->request_mutex
HALF_LOCKED2 &vp_dev->lock
HALF_LOCKED2 _T->lock
HALF_LOCKED2 flags
HALF_LOCKED2 irq

drivers/rpmsg/virtio_rpmsg_bus.c rpmsg_send_offchannel_raw() -> virtqueue_kick()

Type Parameter Key Value
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &vrp->tx_lock
HALF_LOCKED2 &eptdev->ept_lock
TYPE_LOCK (struct virtproc_info)->tx_lock

drivers/block/virtio_blk.c virtio_queue_rq() -> virtqueue_kick()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 flags
HALF_LOCKED2 __tag_set->srcu
HALF_LOCKED2 rcu_read

drivers/i2c/busses/i2c-virtio.c virtio_i2c_xfer() -> virtqueue_kick()

Type Parameter Key Value
NOCHECK_CALL

drivers/net/virtio_net.c virtnet_send_command_reply() -> virtqueue_kick()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 &vi->cvq_lock
HALF_LOCKED2 global &rtnl_mutex
TYPE_LOCK (struct virtnet_info)->cvq_lock

drivers/spi/spi-virtio.c virtio_spi_transfer_one() -> virtqueue_kick()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &ctrl->io_mutex
HALF_LOCKED2 &ctrl->dev.driver_data->op_lock
TYPE_LOCK (struct spi_controller)->io_mutex

drivers/virtio/virtio_input.c virtinput_fill_evt() -> virtqueue_kick()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &vi->lock
LOCK2 flags
TYPE_LOCK (struct virtio_input)->lock

drivers/virtio/virtio_input.c virtinput_recv_events() -> virtqueue_kick()

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
PARAM_VALUE 0 vq->vdev->priv 4096-ptr_max
DATA_SOURCE 0 vq $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &vi->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_input)->lock

drivers/virtio/virtio_input.c virtinput_send_status() -> virtqueue_kick()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &vi->lock
LOCK2 flags
HALF_LOCKED2 &idev->event_lock
HALF_LOCKED2 irq
TYPE_LOCK (struct virtio_input)->lock