diff options
author | Xuan Zhuo <xuanzhuo@linux.alibaba.com> | 2023-08-10 15:30:50 +0300 |
---|---|---|
committer | Michael S. Tsirkin <mst@redhat.com> | 2023-09-04 01:10:23 +0300 |
commit | 2df64759071bdca2a12edb9af4f071e4419ad745 (patch) | |
tree | 93b5c07e34c34572f96514dd1366394cc0f27911 /drivers/virtio | |
parent | d7344a2f71e38eb04fc16e3fef4f0580f42cbbd5 (diff) | |
download | linux-2df64759071bdca2a12edb9af4f071e4419ad745.tar.xz |
virtio_ring: introduce virtqueue_dma_dev()
Added virtqueue_dma_dev() to get DMA device for virtio. Then the
caller can do dma operation in advance. The purpose is to keep memory
mapped across multiple add/get buf operations.
Signed-off-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Message-Id: <20230810123057.43407-6-xuanzhuo@linux.alibaba.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'drivers/virtio')
-rw-r--r-- | drivers/virtio/virtio_ring.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c index f9f772e85a38..bb3d73d221cd 100644 --- a/drivers/virtio/virtio_ring.c +++ b/drivers/virtio/virtio_ring.c @@ -2266,6 +2266,23 @@ int virtqueue_add_inbuf_ctx(struct virtqueue *vq, EXPORT_SYMBOL_GPL(virtqueue_add_inbuf_ctx); /** + * virtqueue_dma_dev - get the dma dev + * @_vq: the struct virtqueue we're talking about. + * + * Returns the dma dev. That can been used for dma api. + */ +struct device *virtqueue_dma_dev(struct virtqueue *_vq) +{ + struct vring_virtqueue *vq = to_vvq(_vq); + + if (vq->use_dma_api) + return vring_dma_dev(vq); + else + return NULL; +} +EXPORT_SYMBOL_GPL(virtqueue_dma_dev); + +/** * virtqueue_kick_prepare - first half of split virtqueue_kick call. * @_vq: the struct virtqueue * |