mirror of
https://github.com/torvalds/linux.git
synced 2024-11-26 14:12:06 +00:00
virtio_ring: packed: introduce virtqueue_reinit_packed()
Introduce a function to initialize vq without allocating new ring, desc_state, desc_extra. Subsequent patches will call this function after reset vq to reinitialize vq. Signed-off-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com> Acked-by: Jason Wang <jasowang@redhat.com> Message-Id: <20220801063902.129329-23-xuanzhuo@linux.alibaba.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
51d649f14a
commit
56775e141b
@ -1957,6 +1957,18 @@ static void virtqueue_vring_attach_packed(struct vring_virtqueue *vq,
|
||||
vq->free_head = 0;
|
||||
}
|
||||
|
||||
static void virtqueue_reinit_packed(struct vring_virtqueue *vq)
|
||||
{
|
||||
memset(vq->packed.vring.device, 0, vq->packed.event_size_in_bytes);
|
||||
memset(vq->packed.vring.driver, 0, vq->packed.event_size_in_bytes);
|
||||
|
||||
/* we need to reset the desc.flags. For more, see is_used_desc_packed() */
|
||||
memset(vq->packed.vring.desc, 0, vq->packed.ring_size_in_bytes);
|
||||
|
||||
virtqueue_init(vq, vq->packed.vring.num);
|
||||
virtqueue_vring_init_packed(&vq->packed, !!vq->vq.callback);
|
||||
}
|
||||
|
||||
static struct virtqueue *vring_create_virtqueue_packed(
|
||||
unsigned int index,
|
||||
unsigned int num,
|
||||
|
Loading…
Reference in New Issue
Block a user