On Wed, May 08, 2024 at 02:37:15PM +0800, Xuan Zhuo wrote: > Now, we have virtio DMA APIs, the driver can be the premapped > mode whatever the virtio core uses dma api or not. > > So remove the limit of checking use_dma_api from > virtqueue_set_dma_premapped(). > > Signed-off-by: Xuan Zhuo <xuanzhuo@xxxxxxxxxxxxxxxxx> > Acked-by: Jason Wang <jasowang@xxxxxxxxxx> > --- > drivers/virtio/virtio_ring.c | 7 +------ > 1 file changed, 1 insertion(+), 6 deletions(-) > > diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c > index 6f7e5010a673..85d0dc26ae9f 100644 > --- a/drivers/virtio/virtio_ring.c > +++ b/drivers/virtio/virtio_ring.c > @@ -2782,7 +2782,7 @@ EXPORT_SYMBOL_GPL(virtqueue_resize); > * > * Returns zero or a negative error. > * 0: success. > - * -EINVAL: vring does not use the dma api, so we can not enable premapped mode. > + * -EINVAL: the vq is in use. To me it sounds more like -EBUSY with the current error description. But I suspect that the error is returned, when the following condition is not met: * This function must be called immediately after creating the vq, or after vq * reset, and before adding any buffers to it. If I am not mistaking, then a better way to put it would be: * -EINVAL: too late to enable premapped mode, the vq already contains buffers > */ > int virtqueue_set_dma_premapped(struct virtqueue *_vq) > { > @@ -2798,11 +2798,6 @@ int virtqueue_set_dma_premapped(struct virtqueue *_vq) > return -EINVAL; > } > > - if (!vq->use_dma_api) { > - END_USE(vq); > - return -EINVAL; > - } > - > vq->premapped = true; > vq->do_unmap = false; > > -- > 2.32.0.3.g01195cf9f > >