Lines Matching defs:vring_split
1197 static void virtqueue_vring_init_split(struct vring_virtqueue_split *vring_split,
1204 vring_split->avail_flags_shadow = 0;
1205 vring_split->avail_idx_shadow = 0;
1209 vring_split->avail_flags_shadow |= VRING_AVAIL_F_NO_INTERRUPT;
1211 vring_split->vring.avail->flags = cpu_to_virtio16(vdev,
1212 vring_split->avail_flags_shadow);
1240 struct vring_virtqueue_split *vring_split)
1242 vq->split = *vring_split;
1249 static int vring_alloc_state_extra_split(struct vring_virtqueue_split *vring_split)
1253 u32 num = vring_split->vring.num;
1265 vring_split->desc_state = state;
1266 vring_split->desc_extra = extra;
1275 static void vring_free_split(struct vring_virtqueue_split *vring_split,
1279 vring_free_queue(vdev, vring_split->queue_size_in_bytes,
1280 vring_split->vring.desc,
1281 vring_split->queue_dma_addr,
1284 kfree(vring_split->desc_state);
1285 kfree(vring_split->desc_extra);
1288 static int vring_alloc_queue_split(struct vring_virtqueue_split *vring_split,
1328 vring_init(&vring_split->vring, num, queue, vring_align);
1330 vring_split->queue_dma_addr = dma_addr;
1331 vring_split->queue_size_in_bytes = vring_size(num, vring_align);
1333 vring_split->vring_align = vring_align;
1334 vring_split->may_reduce_num = may_reduce_num;
1342 struct vring_virtqueue_split *vring_split,
1383 err = vring_alloc_state_extra_split(vring_split);
1389 virtqueue_vring_init_split(vring_split, vq);
1391 virtqueue_init(vq, vring_split->vring.num);
1392 virtqueue_vring_attach_split(vq, vring_split);
1413 struct vring_virtqueue_split vring_split = {};
1417 err = vring_alloc_queue_split(&vring_split, vdev, num, vring_align,
1422 vq = __vring_new_virtqueue_split(index, &vring_split, vdev, weak_barriers,
1425 vring_free_split(&vring_split, vdev, map);
1436 struct vring_virtqueue_split vring_split = {};
1440 err = vring_alloc_queue_split(&vring_split, vdev, num,
1447 err = vring_alloc_state_extra_split(&vring_split);
1453 virtqueue_vring_init_split(&vring_split, vq);
1455 virtqueue_init(vq, vring_split.vring.num);
1456 virtqueue_vring_attach_split(vq, &vring_split);
1461 vring_free_split(&vring_split, vdev, vq->map);
3455 struct vring_virtqueue_split vring_split = {};
3469 vring_init(&vring_split.vring, num, pages, vring_align);
3470 return __vring_new_virtqueue_split(index, &vring_split, vdev, weak_barriers,