mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-04 08:08:54 +00:00
virtio_ring: extract the logic of freeing vring
Introduce vring_free() to free the vring of vq. Subsequent patches will use vring_free() alone. Signed-off-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com> Acked-by: Jason Wang <jasowang@redhat.com> Message-Id: <20220801063902.129329-5-xuanzhuo@linux.alibaba.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
a62eecb3a9
commit
3ea19e3265
1 changed files with 13 additions and 5 deletions
|
@ -2316,14 +2316,10 @@ struct virtqueue *vring_new_virtqueue(unsigned int index,
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(vring_new_virtqueue);
|
EXPORT_SYMBOL_GPL(vring_new_virtqueue);
|
||||||
|
|
||||||
void vring_del_virtqueue(struct virtqueue *_vq)
|
static void vring_free(struct virtqueue *_vq)
|
||||||
{
|
{
|
||||||
struct vring_virtqueue *vq = to_vvq(_vq);
|
struct vring_virtqueue *vq = to_vvq(_vq);
|
||||||
|
|
||||||
spin_lock(&vq->vq.vdev->vqs_list_lock);
|
|
||||||
list_del(&_vq->list);
|
|
||||||
spin_unlock(&vq->vq.vdev->vqs_list_lock);
|
|
||||||
|
|
||||||
if (vq->we_own_ring) {
|
if (vq->we_own_ring) {
|
||||||
if (vq->packed_ring) {
|
if (vq->packed_ring) {
|
||||||
vring_free_queue(vq->vq.vdev,
|
vring_free_queue(vq->vq.vdev,
|
||||||
|
@ -2354,6 +2350,18 @@ void vring_del_virtqueue(struct virtqueue *_vq)
|
||||||
kfree(vq->split.desc_state);
|
kfree(vq->split.desc_state);
|
||||||
kfree(vq->split.desc_extra);
|
kfree(vq->split.desc_extra);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void vring_del_virtqueue(struct virtqueue *_vq)
|
||||||
|
{
|
||||||
|
struct vring_virtqueue *vq = to_vvq(_vq);
|
||||||
|
|
||||||
|
spin_lock(&vq->vq.vdev->vqs_list_lock);
|
||||||
|
list_del(&_vq->list);
|
||||||
|
spin_unlock(&vq->vq.vdev->vqs_list_lock);
|
||||||
|
|
||||||
|
vring_free(_vq);
|
||||||
|
|
||||||
kfree(vq);
|
kfree(vq);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(vring_del_virtqueue);
|
EXPORT_SYMBOL_GPL(vring_del_virtqueue);
|
||||||
|
|
Loading…
Reference in a new issue