Lines Matching refs:vq

358 	struct virtqueue *vq;  in vu_req_read_message()  local
379 virtio_device_for_each_vq((&vu_dev->vdev), vq) { in vu_req_read_message()
380 if (vq->index == msg.msg.payload.vring_state.index) { in vu_req_read_message()
382 vu_dev->vq_irq_vq_map |= BIT_ULL(vq->index); in vu_req_read_message()
414 struct virtqueue *vq; in vu_req_interrupt() local
416 virtio_device_for_each_vq((&vu_dev->vdev), vq) { in vu_req_interrupt()
417 if (vu_dev->vq_irq_vq_map & BIT_ULL(vq->index)) in vu_req_interrupt()
418 vring_interrupt(0 /* ignored */, vq); in vu_req_interrupt()
758 static bool vu_notify(struct virtqueue *vq) in vu_notify() argument
760 struct virtio_uml_vq_info *info = vq->priv; in vu_notify()
772 vu_dev = to_virtio_uml_device(vq->vdev); in vu_notify()
775 vq->index, 0) == 0; in vu_notify()
786 struct virtqueue *vq = opaque; in vu_interrupt() local
787 struct virtio_uml_vq_info *info = vq->priv; in vu_interrupt()
795 ret |= vring_interrupt(irq, vq); in vu_interrupt()
839 static void vu_del_vq(struct virtqueue *vq) in vu_del_vq() argument
841 struct virtio_uml_vq_info *info = vq->priv; in vu_del_vq()
846 vu_dev = to_virtio_uml_device(vq->vdev); in vu_del_vq()
848 um_free_irq(vu_dev->irq, vq); in vu_del_vq()
855 vring_del_virtqueue(vq); in vu_del_vq()
862 struct virtqueue *vq, *n; in vu_del_vqs() local
866 list_for_each_entry_reverse(vq, &vdev->vqs, list) in vu_del_vqs()
867 WARN_ON(vhost_user_set_vring_enable(vu_dev, vq->index, false)); in vu_del_vqs()
872 list_for_each_entry_safe(vq, n, &vdev->vqs, list) in vu_del_vqs()
873 vu_del_vq(vq); in vu_del_vqs()
877 struct virtqueue *vq) in vu_setup_vq_call_fd() argument
879 struct virtio_uml_vq_info *info = vq->priv; in vu_setup_vq_call_fd()
899 vu_interrupt, IRQF_SHARED, info->name, vq); in vu_setup_vq_call_fd()
903 rc = vhost_user_set_vring_call(vu_dev, vq->index, call_fds[1]); in vu_setup_vq_call_fd()
910 um_free_irq(vu_dev->irq, vq); in vu_setup_vq_call_fd()
927 struct virtqueue *vq; in vu_setup_vq() local
939 vq = vring_create_virtqueue(index, num, PAGE_SIZE, vdev, true, true, in vu_setup_vq()
941 if (!vq) { in vu_setup_vq()
945 vq->priv = info; in vu_setup_vq()
946 num = virtqueue_get_vring_size(vq); in vu_setup_vq()
958 rc = vu_setup_vq_call_fd(vu_dev, vq); in vu_setup_vq()
971 virtqueue_get_desc_addr(vq), in vu_setup_vq()
972 virtqueue_get_used_addr(vq), in vu_setup_vq()
973 virtqueue_get_avail_addr(vq), in vu_setup_vq()
978 return vq; in vu_setup_vq()
982 um_free_irq(vu_dev->irq, vq); in vu_setup_vq()
989 vring_del_virtqueue(vq); in vu_setup_vq()
1003 struct virtqueue *vq; in vu_find_vqs() local
1027 list_for_each_entry(vq, &vdev->vqs, list) { in vu_find_vqs()
1028 struct virtio_uml_vq_info *info = vq->priv; in vu_find_vqs()
1031 rc = vhost_user_set_vring_kick(vu_dev, vq->index, in vu_find_vqs()
1037 rc = vhost_user_set_vring_enable(vu_dev, vq->index, true); in vu_find_vqs()
1324 struct virtqueue *vq; in virtio_uml_suspend() local
1326 virtio_device_for_each_vq((&vu_dev->vdev), vq) { in virtio_uml_suspend()
1327 struct virtio_uml_vq_info *info = vq->priv; in virtio_uml_suspend()
1330 vhost_user_set_vring_enable(vu_dev, vq->index, false); in virtio_uml_suspend()
1347 struct virtqueue *vq; in virtio_uml_resume() local
1349 virtio_device_for_each_vq((&vu_dev->vdev), vq) { in virtio_uml_resume()
1350 struct virtio_uml_vq_info *info = vq->priv; in virtio_uml_resume()
1353 vhost_user_set_vring_enable(vu_dev, vq->index, true); in virtio_uml_resume()