[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC PATCH v9 18/23] vdpa: Export vhost_vdpa_dma_map and unmap calls
From: |
Eugenio Pérez |
Subject: |
[RFC PATCH v9 18/23] vdpa: Export vhost_vdpa_dma_map and unmap calls |
Date: |
Wed, 6 Jul 2022 20:40:03 +0200 |
Shadow CVQ will copy buffers on qemu VA, so we avoid TOCTOU attacks that
can set a different state in qemu device model and vdpa device.
Signed-off-by: Eugenio Pérez <eperezma@redhat.com>
---
include/hw/virtio/vhost-vdpa.h | 4 ++++
hw/virtio/vhost-vdpa.c | 7 +++----
2 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/include/hw/virtio/vhost-vdpa.h b/include/hw/virtio/vhost-vdpa.h
index a29dbb3f53..7214eb47dc 100644
--- a/include/hw/virtio/vhost-vdpa.h
+++ b/include/hw/virtio/vhost-vdpa.h
@@ -39,4 +39,8 @@ typedef struct vhost_vdpa {
VhostVDPAHostNotifier notifier[VIRTIO_QUEUE_MAX];
} VhostVDPA;
+int vhost_vdpa_dma_map(struct vhost_vdpa *v, hwaddr iova, hwaddr size,
+ void *vaddr, bool readonly);
+int vhost_vdpa_dma_unmap(struct vhost_vdpa *v, hwaddr iova, hwaddr size);
+
#endif
diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c
index 69cfaf05d6..613c3483b0 100644
--- a/hw/virtio/vhost-vdpa.c
+++ b/hw/virtio/vhost-vdpa.c
@@ -71,8 +71,8 @@ static bool
vhost_vdpa_listener_skipped_section(MemoryRegionSection *section,
return false;
}
-static int vhost_vdpa_dma_map(struct vhost_vdpa *v, hwaddr iova, hwaddr size,
- void *vaddr, bool readonly)
+int vhost_vdpa_dma_map(struct vhost_vdpa *v, hwaddr iova, hwaddr size,
+ void *vaddr, bool readonly)
{
struct vhost_msg_v2 msg = {};
int fd = v->device_fd;
@@ -97,8 +97,7 @@ static int vhost_vdpa_dma_map(struct vhost_vdpa *v, hwaddr
iova, hwaddr size,
return ret;
}
-static int vhost_vdpa_dma_unmap(struct vhost_vdpa *v, hwaddr iova,
- hwaddr size)
+int vhost_vdpa_dma_unmap(struct vhost_vdpa *v, hwaddr iova, hwaddr size)
{
struct vhost_msg_v2 msg = {};
int fd = v->device_fd;
--
2.31.1
- [RFC PATCH v9 13/23] vhost: Add vhost_svq_inject, (continued)
- [RFC PATCH v9 10/23] vhost: Reorder vhost_svq_last_desc_of_chain, Eugenio Pérez, 2022/07/06
- [RFC PATCH v9 14/23] vhost: add vhost_svq_poll, Eugenio Pérez, 2022/07/06
- [RFC PATCH v9 15/23] vhost: Add custom used buffer callback, Eugenio Pérez, 2022/07/06
- [RFC PATCH v9 17/23] vhost: add detach SVQ operation, Eugenio Pérez, 2022/07/06
- [RFC PATCH v9 18/23] vdpa: Export vhost_vdpa_dma_map and unmap calls,
Eugenio Pérez <=
- [RFC PATCH v9 19/23] vdpa: Extract get features part from vhost_vdpa_get_max_queue_pairs, Eugenio Pérez, 2022/07/06
- [RFC PATCH v9 21/23] vdpa: Add vhost_vdpa_start_control_svq, Eugenio Pérez, 2022/07/06
[RFC PATCH v9 22/23] vdpa: Inject virtio-net mac address via CVQ at start, Eugenio Pérez, 2022/07/06
[RFC PATCH v9 20/23] vdpa: Buffer CVQ support on shadow virtqueue, Eugenio Pérez, 2022/07/06