[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v5 15/20] vdpa: Export vhost_vdpa_dma_map and unmap calls
From: |
Eugenio Pérez |
Subject: |
[PATCH v5 15/20] vdpa: Export vhost_vdpa_dma_map and unmap calls |
Date: |
Tue, 19 Jul 2022 11:56:24 +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 v5 06/20] vhost: Move vhost_svq_kick call to vhost_svq_add, (continued)
- [PATCH v5 06/20] vhost: Move vhost_svq_kick call to vhost_svq_add, Eugenio Pérez, 2022/07/19
- [PATCH v5 05/20] vhost: Reorder vhost_svq_kick, Eugenio Pérez, 2022/07/19
- [PATCH v5 07/20] vhost: Check for queue full at vhost_svq_add, Eugenio Pérez, 2022/07/19
- [PATCH v5 08/20] vhost: Decouple vhost_svq_add from VirtQueueElement, Eugenio Pérez, 2022/07/19
- [PATCH v5 12/20] vhost: Expose vhost_svq_add, Eugenio Pérez, 2022/07/19
- [PATCH v5 09/20] vhost: Add SVQDescState, Eugenio Pérez, 2022/07/19
- [PATCH v5 11/20] vhost: add vhost_svq_push_elem, Eugenio Pérez, 2022/07/19
- [PATCH v5 10/20] vhost: Track number of descs in SVQDescState, Eugenio Pérez, 2022/07/19
- [PATCH v5 13/20] vhost: add vhost_svq_poll, Eugenio Pérez, 2022/07/19
- [PATCH v5 16/20] vdpa: manual forward CVQ buffers, Eugenio Pérez, 2022/07/19
- [PATCH v5 15/20] vdpa: Export vhost_vdpa_dma_map and unmap calls,
Eugenio Pérez <=
- [PATCH v5 14/20] vhost: Add svq avail_handler callback, Eugenio Pérez, 2022/07/19
- [PATCH v5 17/20] vdpa: Buffer CVQ support on shadow virtqueue, Eugenio Pérez, 2022/07/19
- [PATCH v5 18/20] vdpa: Extract get features part from vhost_vdpa_get_max_queue_pairs, Eugenio Pérez, 2022/07/19
- [PATCH v5 19/20] vdpa: Add device migration blocker, Eugenio Pérez, 2022/07/19
- [PATCH v5 20/20] vdpa: Add x-svq to NetdevVhostVDPAOptions, Eugenio Pérez, 2022/07/19
- Re: [PATCH v5 00/20] vdpa net devices Rx filter change notification with Shadow VQ, Eugenio Perez Martin, 2022/07/19