Lines Matching refs:vqs
51 struct virtio_blk_vq *vqs; member
143 spin_lock_irqsave(&vblk->vqs[qid].lock, flags); in virtblk_done()
146 while ((vbr = virtqueue_get_buf(vblk->vqs[qid].vq, &len)) != NULL) { in virtblk_done()
157 spin_unlock_irqrestore(&vblk->vqs[qid].lock, flags); in virtblk_done()
212 spin_lock_irqsave(&vblk->vqs[qid].lock, flags); in virtio_queue_rq()
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()
217 spin_unlock_irqrestore(&vblk->vqs[qid].lock, flags); in virtio_queue_rq()
225 if (bd->last && virtqueue_kick_prepare(vblk->vqs[qid].vq)) in virtio_queue_rq()
227 spin_unlock_irqrestore(&vblk->vqs[qid].lock, flags); in virtio_queue_rq()
230 virtqueue_notify(vblk->vqs[qid].vq); in virtio_queue_rq()
386 struct virtqueue **vqs; in init_vq() local
396 vblk->vqs = kmalloc(sizeof(*vblk->vqs) * num_vqs, GFP_KERNEL); in init_vq()
397 if (!vblk->vqs) { in init_vq()
410 vqs = kmalloc(sizeof(*vqs) * num_vqs, GFP_KERNEL); in init_vq()
411 if (!vqs) in init_vq()
416 snprintf(vblk->vqs[i].name, VQ_NAME_LEN, "req.%d", i); in init_vq()
417 names[i] = vblk->vqs[i].name; in init_vq()
421 err = vdev->config->find_vqs(vdev, num_vqs, vqs, callbacks, names); in init_vq()
426 spin_lock_init(&vblk->vqs[i].lock); in init_vq()
427 vblk->vqs[i].vq = vqs[i]; in init_vq()
432 kfree(vqs); in init_vq()
439 kfree(vblk->vqs); in init_vq()
624 virtblk_queue_depth = vblk->vqs[0].vq->num_free; in virtblk_probe()
787 kfree(vblk->vqs); in virtblk_remove()