Message ID | 20220720030436.79520-27-xuanzhuo@linux.alibaba.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | virtio pci support VIRTIO_F_RING_RESET | expand |
在 2022/7/20 11:04, Xuan Zhuo 写道: > Introduce a new member reset to the structure virtqueue to determine > whether the current vq is in the reset state. Subsequent patches will > use it. > > Signed-off-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com> Acked-by: Jason Wang <jasowang@redhat.com> > --- > drivers/virtio/virtio_ring.c | 2 ++ > include/linux/virtio.h | 2 ++ > 2 files changed, 4 insertions(+) > > diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c > index bf666dad9904..8278b917ad64 100644 > --- a/drivers/virtio/virtio_ring.c > +++ b/drivers/virtio/virtio_ring.c > @@ -2011,6 +2011,7 @@ static struct virtqueue *vring_create_virtqueue_packed( > vq->vq.vdev = vdev; > vq->vq.name = name; > vq->vq.index = index; > + vq->vq.reset = false; > vq->we_own_ring = true; > vq->notify = notify; > vq->weak_barriers = weak_barriers; > @@ -2490,6 +2491,7 @@ struct virtqueue *__vring_new_virtqueue(unsigned int index, > vq->vq.vdev = vdev; > vq->vq.name = name; > vq->vq.index = index; > + vq->vq.reset = false; > vq->we_own_ring = false; > vq->notify = notify; > vq->weak_barriers = weak_barriers; > diff --git a/include/linux/virtio.h b/include/linux/virtio.h > index d45ee82a4470..a3f73bb6733e 100644 > --- a/include/linux/virtio.h > +++ b/include/linux/virtio.h > @@ -20,6 +20,7 @@ > * @index: the zero-based ordinal number for this queue. > * @num_free: number of elements we expect to be able to fit. > * @num_max: the maximum number of elements supported by the device. > + * @reset: vq is in reset state or not. > * > * A note on @num_free: with indirect buffers, each buffer needs one > * element in the queue, otherwise a buffer will need one element per > @@ -34,6 +35,7 @@ struct virtqueue { > unsigned int num_free; > unsigned int num_max; > void *priv; > + bool reset; > }; > > int virtqueue_add_outbuf(struct virtqueue *vq,
diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c index bf666dad9904..8278b917ad64 100644 --- a/drivers/virtio/virtio_ring.c +++ b/drivers/virtio/virtio_ring.c @@ -2011,6 +2011,7 @@ static struct virtqueue *vring_create_virtqueue_packed( vq->vq.vdev = vdev; vq->vq.name = name; vq->vq.index = index; + vq->vq.reset = false; vq->we_own_ring = true; vq->notify = notify; vq->weak_barriers = weak_barriers; @@ -2490,6 +2491,7 @@ struct virtqueue *__vring_new_virtqueue(unsigned int index, vq->vq.vdev = vdev; vq->vq.name = name; vq->vq.index = index; + vq->vq.reset = false; vq->we_own_ring = false; vq->notify = notify; vq->weak_barriers = weak_barriers; diff --git a/include/linux/virtio.h b/include/linux/virtio.h index d45ee82a4470..a3f73bb6733e 100644 --- a/include/linux/virtio.h +++ b/include/linux/virtio.h @@ -20,6 +20,7 @@ * @index: the zero-based ordinal number for this queue. * @num_free: number of elements we expect to be able to fit. * @num_max: the maximum number of elements supported by the device. + * @reset: vq is in reset state or not. * * A note on @num_free: with indirect buffers, each buffer needs one * element in the queue, otherwise a buffer will need one element per @@ -34,6 +35,7 @@ struct virtqueue { unsigned int num_free; unsigned int num_max; void *priv; + bool reset; }; int virtqueue_add_outbuf(struct virtqueue *vq,
Introduce a new member reset to the structure virtqueue to determine whether the current vq is in the reset state. Subsequent patches will use it. Signed-off-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com> --- drivers/virtio/virtio_ring.c | 2 ++ include/linux/virtio.h | 2 ++ 2 files changed, 4 insertions(+)