Lines Matching refs:vqs
80 /* num of vqs */
83 struct virtio_blk_vq *vqs;
135 struct virtio_blk_vq *vq = &vblk->vqs[hctx->queue_num];
360 spin_lock_irqsave(&vblk->vqs[qid].lock, flags);
363 while ((vbr = virtqueue_get_buf(vblk->vqs[qid].vq, &len)) != NULL) {
377 spin_unlock_irqrestore(&vblk->vqs[qid].lock, flags);
383 struct virtio_blk_vq *vq = &vblk->vqs[hctx->queue_num];
445 spin_lock_irqsave(&vblk->vqs[qid].lock, flags);
446 err = virtblk_add_req(vblk->vqs[qid].vq, vbr);
448 virtqueue_kick(vblk->vqs[qid].vq);
454 spin_unlock_irqrestore(&vblk->vqs[qid].lock, flags);
459 if (bd->last && virtqueue_kick_prepare(vblk->vqs[qid].vq))
461 spin_unlock_irqrestore(&vblk->vqs[qid].lock, flags);
464 virtqueue_notify(vblk->vqs[qid].vq);
1027 struct virtqueue **vqs;
1059 vblk->vqs = kmalloc_array(num_vqs, sizeof(*vblk->vqs), GFP_KERNEL);
1060 if (!vblk->vqs)
1065 vqs = kmalloc_array(num_vqs, sizeof(*vqs), GFP_KERNEL);
1066 if (!names || !callbacks || !vqs) {
1073 snprintf(vblk->vqs[i].name, VQ_NAME_LEN, "req.%u", i);
1074 names[i] = vblk->vqs[i].name;
1079 snprintf(vblk->vqs[i].name, VQ_NAME_LEN, "req_poll.%u", i);
1080 names[i] = vblk->vqs[i].name;
1084 err = virtio_find_vqs(vdev, num_vqs, vqs, callbacks, names, &desc);
1089 spin_lock_init(&vblk->vqs[i].lock);
1090 vblk->vqs[i].vq = vqs[i];
1095 kfree(vqs);
1099 kfree(vblk->vqs);
1360 queue_depth = vblk->vqs[0].vq->num_free;
1592 kfree(vblk->vqs);
1620 kfree(vblk->vqs);
1632 /* Ensure no requests in virtqueues before deleting vqs. */
1642 kfree(vblk->vqs);