Lines Matching refs:vring_split
227 struct vring_virtqueue_split *vring_split,
1001 static void virtqueue_vring_init_split(struct vring_virtqueue_split *vring_split, in virtqueue_vring_init_split() argument
1008 vring_split->avail_flags_shadow = 0; in virtqueue_vring_init_split()
1009 vring_split->avail_idx_shadow = 0; in virtqueue_vring_init_split()
1013 vring_split->avail_flags_shadow |= VRING_AVAIL_F_NO_INTERRUPT; in virtqueue_vring_init_split()
1015 vring_split->vring.avail->flags = cpu_to_virtio16(vdev, in virtqueue_vring_init_split()
1016 vring_split->avail_flags_shadow); in virtqueue_vring_init_split()
1044 struct vring_virtqueue_split *vring_split) in virtqueue_vring_attach_split() argument
1046 vq->split = *vring_split; in virtqueue_vring_attach_split()
1052 static int vring_alloc_state_extra_split(struct vring_virtqueue_split *vring_split) in vring_alloc_state_extra_split() argument
1056 u32 num = vring_split->vring.num; in vring_alloc_state_extra_split()
1068 vring_split->desc_state = state; in vring_alloc_state_extra_split()
1069 vring_split->desc_extra = extra; in vring_alloc_state_extra_split()
1078 static void vring_free_split(struct vring_virtqueue_split *vring_split, in vring_free_split() argument
1081 vring_free_queue(vdev, vring_split->queue_size_in_bytes, in vring_free_split()
1082 vring_split->vring.desc, in vring_free_split()
1083 vring_split->queue_dma_addr, in vring_free_split()
1086 kfree(vring_split->desc_state); in vring_free_split()
1087 kfree(vring_split->desc_extra); in vring_free_split()
1090 static int vring_alloc_queue_split(struct vring_virtqueue_split *vring_split, in vring_alloc_queue_split() argument
1130 vring_init(&vring_split->vring, num, queue, vring_align); in vring_alloc_queue_split()
1132 vring_split->queue_dma_addr = dma_addr; in vring_alloc_queue_split()
1133 vring_split->queue_size_in_bytes = vring_size(num, vring_align); in vring_alloc_queue_split()
1135 vring_split->vring_align = vring_align; in vring_alloc_queue_split()
1136 vring_split->may_reduce_num = may_reduce_num; in vring_alloc_queue_split()
1154 struct vring_virtqueue_split vring_split = {}; in vring_create_virtqueue_split() local
1158 err = vring_alloc_queue_split(&vring_split, vdev, num, vring_align, in vring_create_virtqueue_split()
1163 vq = __vring_new_virtqueue(index, &vring_split, vdev, weak_barriers, in vring_create_virtqueue_split()
1166 vring_free_split(&vring_split, vdev, dma_dev); in vring_create_virtqueue_split()
1177 struct vring_virtqueue_split vring_split = {}; in virtqueue_resize_split() local
1182 err = vring_alloc_queue_split(&vring_split, vdev, num, in virtqueue_resize_split()
1189 err = vring_alloc_state_extra_split(&vring_split); in virtqueue_resize_split()
1195 virtqueue_vring_init_split(&vring_split, vq); in virtqueue_resize_split()
1197 virtqueue_init(vq, vring_split.vring.num); in virtqueue_resize_split()
1198 virtqueue_vring_attach_split(vq, &vring_split); in virtqueue_resize_split()
1203 vring_free_split(&vring_split, vdev, vring_dma_dev(vq)); in virtqueue_resize_split()
2603 struct vring_virtqueue_split *vring_split, in __vring_new_virtqueue() argument
2648 err = vring_alloc_state_extra_split(vring_split); in __vring_new_virtqueue()
2654 virtqueue_vring_init_split(vring_split, vq); in __vring_new_virtqueue()
2656 virtqueue_init(vq, vring_split->vring.num); in __vring_new_virtqueue()
2657 virtqueue_vring_attach_split(vq, vring_split); in __vring_new_virtqueue()
2860 struct vring_virtqueue_split vring_split = {}; in vring_new_virtqueue() local
2865 vring_init(&vring_split.vring, num, pages, vring_align); in vring_new_virtqueue()
2866 return __vring_new_virtqueue(index, &vring_split, vdev, weak_barriers, in vring_new_virtqueue()