Re: [PATCH vhost v4 10/10] virtio_ring: virtqueue_set_dma_premapped support disable
From: Jason Wang <jasowang@redhat.com>
Date: 2024-03-21 06:02:29
Also in:
virtualization
On Tue, Mar 12, 2024 at 11:36 AM Xuan Zhuo [off-list ref] wrote:
quoted hunk ↗ jump to hunk
Now, the API virtqueue_set_dma_premapped just support to enable premapped mode. If we allow enabling the premapped dynamically, we should make this API to support disable the premapped mode. Signed-off-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com> --- drivers/virtio/virtio_ring.c | 34 ++++++++++++++++++++++++++-------- include/linux/virtio.h | 2 +- 2 files changed, 27 insertions(+), 9 deletions(-)diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c index 34f4b2c0c31e..3bf69cae4965 100644 --- a/drivers/virtio/virtio_ring.c +++ b/drivers/virtio/virtio_ring.c@@ -2801,6 +2801,7 @@ EXPORT_SYMBOL_GPL(virtqueue_resize); /** * virtqueue_set_dma_premapped - set the vring premapped mode * @_vq: the struct virtqueue we're talking about. + * @premapped: enable/disable the premapped mode. * * Enable the premapped mode of the vq. *@@ -2819,9 +2820,10 @@ EXPORT_SYMBOL_GPL(virtqueue_resize); * 0: success. * -EINVAL: vring does not use the dma api, so we can not enable premapped mode. */ -int virtqueue_set_dma_premapped(struct virtqueue *_vq) +int virtqueue_set_dma_premapped(struct virtqueue *_vq, bool premapped)
I think we need to document the requirement for calling this. Looking at the code, it seems it requires to stop the datapath and detach all the used buffers? Thanks