virtio_ring: split: reserve vring_align, may_reduce_num
authorXuan Zhuo <xuanzhuo@linux.alibaba.com>
Mon, 1 Aug 2022 06:38:35 +0000 (14:38 +0800)
committerMichael S. Tsirkin <mst@redhat.com>
Thu, 11 Aug 2022 08:06:39 +0000 (04:06 -0400)
In vring_alloc_queue_split() save vring_align, may_reduce_num to
structure vring_virtqueue_split. Used to create a new vring when
implementing resize.

Signed-off-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Message-Id: <20220801063902.129329-16-xuanzhuo@linux.alibaba.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
drivers/virtio/virtio_ring.c

index 948f8da7b7806ea089413eb9fe93bf1222fa571c..8cbb19cdb1ce858d4c80ea5029dadebf1c17e5ce 100644 (file)
@@ -105,6 +105,13 @@ struct vring_virtqueue_split {
        /* DMA address and size information */
        dma_addr_t queue_dma_addr;
        size_t queue_size_in_bytes;
+
+       /*
+        * The parameters for creating vrings are reserved for creating new
+        * vring.
+        */
+       u32 vring_align;
+       bool may_reduce_num;
 };
 
 struct vring_virtqueue_packed {
@@ -1068,6 +1075,9 @@ static int vring_alloc_queue_split(struct vring_virtqueue_split *vring_split,
        vring_split->queue_dma_addr = dma_addr;
        vring_split->queue_size_in_bytes = vring_size(num, vring_align);
 
+       vring_split->vring_align = vring_align;
+       vring_split->may_reduce_num = may_reduce_num;
+
        return 0;
 }