[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v6 15/21] vdpa: Export vhost_vdpa_dma_map and unmap calls
From: |
Eugenio Pérez |
Subject: |
[PATCH v6 15/21] vdpa: Export vhost_vdpa_dma_map and unmap calls |
Date: |
Wed, 20 Jul 2022 08:59:40 +0200 |
Shadow CVQ will copy buffers on qemu VA, so we avoid TOCTOU attacks from
the guest that could set a different state in qemu device model and vdpa
device.
To do so, it needs to be able to map these new buffers to the device.
Signed-off-by: Eugenio Pérez <eperezma@redhat.com>
Acked-by: Jason Wang <jasowang@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 0b13e98471..96997210be 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
- [PATCH v6 07/21] vhost: Check for queue full at vhost_svq_add, (continued)
- [PATCH v6 07/21] vhost: Check for queue full at vhost_svq_add, Eugenio Pérez, 2022/07/20
- [PATCH v6 04/21] vdpa: Avoid compiler to squash reads to used idx, Eugenio Pérez, 2022/07/20
- [PATCH v6 01/21] vhost: move descriptor translation to vhost_svq_vring_write_descs, Eugenio Pérez, 2022/07/20
- [PATCH v6 05/21] vhost: Reorder vhost_svq_kick, Eugenio Pérez, 2022/07/20
- [PATCH v6 06/21] vhost: Move vhost_svq_kick call to vhost_svq_add, Eugenio Pérez, 2022/07/20
- [PATCH v6 08/21] vhost: Decouple vhost_svq_add from VirtQueueElement, Eugenio Pérez, 2022/07/20
- [PATCH v6 03/21] virtio-net: Expose ctrl virtqueue logic, Eugenio Pérez, 2022/07/20
- [PATCH v6 09/21] vhost: Add SVQDescState, Eugenio Pérez, 2022/07/20
- [PATCH v6 10/21] vhost: Track number of descs in SVQDescState, Eugenio Pérez, 2022/07/20
- [PATCH v6 12/21] vhost: Expose vhost_svq_add, Eugenio Pérez, 2022/07/20
- [PATCH v6 15/21] vdpa: Export vhost_vdpa_dma_map and unmap calls,
Eugenio Pérez <=
- [PATCH v6 13/21] vhost: add vhost_svq_poll, Eugenio Pérez, 2022/07/20
- [PATCH v6 11/21] vhost: add vhost_svq_push_elem, Eugenio Pérez, 2022/07/20
- [PATCH v6 14/21] vhost: Add svq avail_handler callback, Eugenio Pérez, 2022/07/20
- [PATCH v6 16/21] vhost-net-vdpa: add stubs for when no virtio-net device is present, Eugenio Pérez, 2022/07/20
- [PATCH v6 18/21] vdpa: Buffer CVQ support on shadow virtqueue, Eugenio Pérez, 2022/07/20
- [PATCH v6 17/21] vdpa: manual forward CVQ buffers, Eugenio Pérez, 2022/07/20
- [PATCH v6 19/21] vdpa: Extract get features part from vhost_vdpa_get_max_queue_pairs, Eugenio Pérez, 2022/07/20
- [PATCH v6 20/21] vdpa: Add device migration blocker, Eugenio Pérez, 2022/07/20
- [PATCH v6 21/21] vdpa: Add x-svq to NetdevVhostVDPAOptions, Eugenio Pérez, 2022/07/20