Lines Matching refs:vq
69 struct virtqueue *vq; member
358 struct virtqueue *vq; in vu_req_interrupt() local
379 virtio_device_for_each_vq((&vu_dev->vdev), vq) { in vu_req_interrupt()
380 if (vq->index == msg.msg.payload.vring_state.index) { in vu_req_interrupt()
382 vring_interrupt(0 /* ignored */, vq); in vu_req_interrupt()
722 static bool vu_notify(struct virtqueue *vq) in vu_notify() argument
724 struct virtio_uml_vq_info *info = vq->priv; in vu_notify()
733 vu_dev = to_virtio_uml_device(vq->vdev); in vu_notify()
736 vq->index, 0) == 0; in vu_notify()
747 struct virtqueue *vq = opaque; in vu_interrupt() local
748 struct virtio_uml_vq_info *info = vq->priv; in vu_interrupt()
756 ret |= vring_interrupt(irq, vq); in vu_interrupt()
800 static void vu_del_vq(struct virtqueue *vq) in vu_del_vq() argument
802 struct virtio_uml_vq_info *info = vq->priv; in vu_del_vq()
805 um_free_irq(VIRTIO_IRQ, vq); in vu_del_vq()
812 vring_del_virtqueue(vq); in vu_del_vq()
819 struct virtqueue *vq, *n; in vu_del_vqs() local
823 list_for_each_entry_reverse(vq, &vdev->vqs, list) in vu_del_vqs()
824 WARN_ON(vhost_user_set_vring_enable(vu_dev, vq->index, false)); in vu_del_vqs()
829 list_for_each_entry_safe(vq, n, &vdev->vqs, list) in vu_del_vqs()
830 vu_del_vq(vq); in vu_del_vqs()
834 struct virtqueue *vq) in vu_setup_vq_call_fd() argument
836 struct virtio_uml_vq_info *info = vq->priv; in vu_setup_vq_call_fd()
856 vu_interrupt, IRQF_SHARED, info->name, vq); in vu_setup_vq_call_fd()
860 rc = vhost_user_set_vring_call(vu_dev, vq->index, call_fds[1]); in vu_setup_vq_call_fd()
867 um_free_irq(VIRTIO_IRQ, vq); in vu_setup_vq_call_fd()
883 info->callback(info->vq); in vu_defer_irq_handle()
886 static void vu_defer_irq_callback(struct virtqueue *vq) in vu_defer_irq_callback() argument
888 struct virtio_uml_vq_info *info = vq->priv; in vu_defer_irq_callback()
901 struct virtqueue *vq; in vu_setup_vq() local
926 vq = vring_create_virtqueue(index, num, PAGE_SIZE, vdev, true, true, in vu_setup_vq()
928 if (!vq) { in vu_setup_vq()
932 vq->priv = info; in vu_setup_vq()
933 num = virtqueue_get_vring_size(vq); in vu_setup_vq()
935 info->vq = vq; in vu_setup_vq()
948 rc = vu_setup_vq_call_fd(vu_dev, vq); in vu_setup_vq()
961 virtqueue_get_desc_addr(vq), in vu_setup_vq()
962 virtqueue_get_used_addr(vq), in vu_setup_vq()
963 virtqueue_get_avail_addr(vq), in vu_setup_vq()
968 return vq; in vu_setup_vq()
972 um_free_irq(VIRTIO_IRQ, vq); in vu_setup_vq()
979 vring_del_virtqueue(vq); in vu_setup_vq()
993 struct virtqueue *vq; in vu_find_vqs() local
1013 list_for_each_entry(vq, &vdev->vqs, list) { in vu_find_vqs()
1014 struct virtio_uml_vq_info *info = vq->priv; in vu_find_vqs()
1017 rc = vhost_user_set_vring_kick(vu_dev, vq->index, in vu_find_vqs()
1023 rc = vhost_user_set_vring_enable(vu_dev, vq->index, true); in vu_find_vqs()