Lines Matching refs:vq
62 struct vdpasim_virtqueue *vq) in vdpasim_blk_handle_req() argument
73 ret = vringh_getdesc_iotlb(&vq->vring, &vq->out_iov, &vq->in_iov, in vdpasim_blk_handle_req()
74 &vq->head, GFP_ATOMIC); in vdpasim_blk_handle_req()
78 if (vq->out_iov.used < 1 || vq->in_iov.used < 1) { in vdpasim_blk_handle_req()
80 vq->out_iov.used, vq->in_iov.used); in vdpasim_blk_handle_req()
84 if (vq->in_iov.iov[vq->in_iov.used - 1].iov_len < 1) { in vdpasim_blk_handle_req()
92 to_push = vringh_kiov_length(&vq->in_iov) - 1; in vdpasim_blk_handle_req()
94 to_pull = vringh_kiov_length(&vq->out_iov); in vdpasim_blk_handle_req()
96 bytes = vringh_iov_pull_iotlb(&vq->vring, &vq->out_iov, &hdr, in vdpasim_blk_handle_req()
120 bytes = vringh_iov_push_iotlb(&vq->vring, &vq->in_iov, in vdpasim_blk_handle_req()
143 bytes = vringh_iov_pull_iotlb(&vq->vring, &vq->out_iov, in vdpasim_blk_handle_req()
156 bytes = vringh_iov_push_iotlb(&vq->vring, &vq->in_iov, in vdpasim_blk_handle_req()
180 vringh_kiov_advance(&vq->in_iov, to_push - pushed); in vdpasim_blk_handle_req()
183 bytes = vringh_iov_push_iotlb(&vq->vring, &vq->in_iov, &status, 1); in vdpasim_blk_handle_req()
192 vringh_complete_iotlb(&vq->vring, vq->head, pushed); in vdpasim_blk_handle_req()
208 struct vdpasim_virtqueue *vq = &vdpasim->vqs[i]; in vdpasim_blk_work() local
210 if (!vq->ready) in vdpasim_blk_work()
213 while (vdpasim_blk_handle_req(vdpasim, vq)) { in vdpasim_blk_work()
218 if (vringh_need_notify_iotlb(&vq->vring) > 0) in vdpasim_blk_work()
219 vringh_notify(&vq->vring); in vdpasim_blk_work()