virtqueue_map_need_sync(), virtqueue_map_sync_single_range_for_cpu() and
virtqueue_map_sync_single_range_for_device() are exported, but no driver
in the tree calls them. They are the only path into the sync members of
struct virtio_map_ops, so whoever implements that struct next has to
decide what those members do with no caller to learn it from.

Remove the three functions, their prototypes and their exports, and the
DMA sync shims that the virtio userspace harness kept for them. With
this, virtio_ring no longer exports a way to sync a mapping.

Suggested-by: Michael S. Tsirkin <[email protected]>
Assisted-by: Kiro:claude-opus-5 checkpatch
Signed-off-by: Alexander Graf <[email protected]>
---
 drivers/virtio/virtio_ring.c     | 89 --------------------------------
 include/linux/virtio.h           |  8 ---
 tools/virtio/linux/dma-mapping.h |  7 ---
 3 files changed, 104 deletions(-)

diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c
index b438dc2ce1b8..ea8e774b6d8e 100644
--- a/drivers/virtio/virtio_ring.c
+++ b/drivers/virtio/virtio_ring.c
@@ -3890,94 +3890,5 @@ int virtqueue_map_mapping_error(const struct virtqueue 
*_vq, dma_addr_t addr)
 }
 EXPORT_SYMBOL_GPL(virtqueue_map_mapping_error);
 
-/**
- * virtqueue_map_need_sync - check a dma address needs sync
- * @_vq: the struct virtqueue we're talking about.
- * @addr: DMA address
- *
- * Check if the dma address mapped by the virtqueue_map_* APIs needs to be
- * synchronized
- *
- * return bool
- */
-bool virtqueue_map_need_sync(const struct virtqueue *_vq, dma_addr_t addr)
-{
-       const struct vring_virtqueue *vq = to_vvq(_vq);
-       struct virtio_device *vdev = _vq->vdev;
-
-       if (!vq->use_map_api)
-               return false;
-
-       if (vdev->map)
-               return vdev->map->need_sync(vq->map, addr);
-       else
-               return dma_need_sync(vring_dma_dev(vq), addr);
-}
-EXPORT_SYMBOL_GPL(virtqueue_map_need_sync);
-
-/**
- * virtqueue_map_sync_single_range_for_cpu - map sync for cpu
- * @_vq: the struct virtqueue we're talking about.
- * @addr: DMA address
- * @offset: DMA address offset
- * @size: buf size for sync
- * @dir: DMA direction
- *
- * Before calling this function, use virtqueue_map_need_sync() to confirm that
- * the DMA address really needs to be synchronized
- *
- */
-void virtqueue_map_sync_single_range_for_cpu(const struct virtqueue *_vq,
-                                            dma_addr_t addr,
-                                            unsigned long offset, size_t size,
-                                            enum dma_data_direction dir)
-{
-       const struct vring_virtqueue *vq = to_vvq(_vq);
-       struct virtio_device *vdev = _vq->vdev;
-
-       if (!vq->use_map_api)
-               return;
-
-       if (vdev->map)
-               vdev->map->sync_single_for_cpu(vq->map,
-                                              addr + offset, size, dir);
-       else
-               dma_sync_single_range_for_cpu(vring_dma_dev(vq),
-                                             addr, offset, size, dir);
-}
-EXPORT_SYMBOL_GPL(virtqueue_map_sync_single_range_for_cpu);
-
-/**
- * virtqueue_map_sync_single_range_for_device - map sync for device
- * @_vq: the struct virtqueue we're talking about.
- * @addr: DMA address
- * @offset: DMA address offset
- * @size: buf size for sync
- * @dir: DMA direction
- *
- * Before calling this function, use virtqueue_map_need_sync() to confirm that
- * the DMA address really needs to be synchronized
- */
-void virtqueue_map_sync_single_range_for_device(const struct virtqueue *_vq,
-                                               dma_addr_t addr,
-                                               unsigned long offset, size_t 
size,
-                                               enum dma_data_direction dir)
-{
-       const struct vring_virtqueue *vq = to_vvq(_vq);
-       struct virtio_device *vdev = _vq->vdev;
-
-       if (!vq->use_map_api)
-               return;
-
-       if (vdev->map)
-               vdev->map->sync_single_for_device(vq->map,
-                                                 addr + offset,
-                                                 size, dir);
-       else
-               dma_sync_single_range_for_device(vring_dma_dev(vq), addr,
-                                                offset, size, dir);
-}
-EXPORT_SYMBOL_GPL(virtqueue_map_sync_single_range_for_device);
-
 MODULE_DESCRIPTION("Virtio ring implementation");
 MODULE_LICENSE("GPL");
diff --git a/include/linux/virtio.h b/include/linux/virtio.h
index 93e573c56563..3122fc52a7c3 100644
--- a/include/linux/virtio.h
+++ b/include/linux/virtio.h
@@ -312,14 +312,6 @@ void virtqueue_unmap_single_attrs(const struct virtqueue 
*_vq, dma_addr_t addr,
                                      unsigned long attrs);
 int virtqueue_map_mapping_error(const struct virtqueue *_vq, dma_addr_t addr);
 
-bool virtqueue_map_need_sync(const struct virtqueue *_vq, dma_addr_t addr);
-void virtqueue_map_sync_single_range_for_cpu(const struct virtqueue *_vq, 
dma_addr_t addr,
-                                            unsigned long offset, size_t size,
-                                            enum dma_data_direction dir);
-void virtqueue_map_sync_single_range_for_device(const struct virtqueue *_vq, 
dma_addr_t addr,
-                                               unsigned long offset, size_t 
size,
-                                               enum dma_data_direction dir);
-
 #ifdef CONFIG_VIRTIO_DEBUG
 void virtio_debug_device_init(struct virtio_device *dev);
 void virtio_debug_device_exit(struct virtio_device *dev);
diff --git a/tools/virtio/linux/dma-mapping.h b/tools/virtio/linux/dma-mapping.h
index b9fc5e8338e3..eae160ce7142 100644
--- a/tools/virtio/linux/dma-mapping.h
+++ b/tools/virtio/linux/dma-mapping.h
@@ -36,16 +36,9 @@ enum dma_data_direction {
 
 #define sg_dma_address(sg) (0)
 #define sg_dma_len(sg) (0)
-#define dma_need_sync(v, a) (0)
 #define dma_unmap_single_attrs(d, a, s, r, t) do { \
        (void)(d); (void)(a); (void)(s); (void)(r); (void)(t); \
 } while (0)
-#define dma_sync_single_range_for_cpu(d, a, o, s, r) do { \
-       (void)(d); (void)(a); (void)(o); (void)(s); (void)(r); \
-} while (0)
-#define dma_sync_single_range_for_device(d, a, o, s, r) do { \
-       (void)(d); (void)(a); (void)(o); (void)(s); (void)(r); \
-} while (0)
 #define dma_max_mapping_size(...) SIZE_MAX
 
 /*

Reply via email to