Lines Matching refs:vq
26 struct virtqueue *vq; member
74 static int __virtblk_add_req(struct virtqueue *vq, in __virtblk_add_req() argument
81 __virtio32 type = vbr->out_hdr.type & ~cpu_to_virtio32(vq->vdev, VIRTIO_BLK_T_OUT); in __virtblk_add_req()
92 if (type == cpu_to_virtio32(vq->vdev, VIRTIO_BLK_T_SCSI_CMD)) { in __virtblk_add_req()
98 if (vbr->out_hdr.type & cpu_to_virtio32(vq->vdev, VIRTIO_BLK_T_OUT)) in __virtblk_add_req()
104 if (type == cpu_to_virtio32(vq->vdev, VIRTIO_BLK_T_SCSI_CMD)) { in __virtblk_add_req()
114 return virtqueue_add_sgs(vq, sgs, num_out, num_in, vbr, GFP_ATOMIC); in __virtblk_add_req()
134 static void virtblk_done(struct virtqueue *vq) in virtblk_done() argument
136 struct virtio_blk *vblk = vq->vdev->priv; in virtblk_done()
138 int qid = vq->index; in virtblk_done()
145 virtqueue_disable_cb(vq); in virtblk_done()
146 while ((vbr = virtqueue_get_buf(vblk->vqs[qid].vq, &len)) != NULL) { in virtblk_done()
150 if (unlikely(virtqueue_is_broken(vq))) in virtblk_done()
152 } while (!virtqueue_enable_cb(vq)); in virtblk_done()
213 err = __virtblk_add_req(vblk->vqs[qid].vq, vbr, vbr->sg, num); in virtio_queue_rq()
215 virtqueue_kick(vblk->vqs[qid].vq); in virtio_queue_rq()
225 if (bd->last && virtqueue_kick_prepare(vblk->vqs[qid].vq)) in virtio_queue_rq()
230 virtqueue_notify(vblk->vqs[qid].vq); in virtio_queue_rq()
427 vblk->vqs[i].vq = vqs[i]; in init_vq()
624 virtblk_queue_depth = vblk->vqs[0].vq->num_free; in virtblk_probe()