Blame SOURCES/kvm-vdpa-Export-vhost_vdpa_dma_map-and-unmap-calls.patch

586cba
From 3a5d325fcb2958318262efac31d5fd25fb062523 Mon Sep 17 00:00:00 2001
586cba
From: =?UTF-8?q?Eugenio=20P=C3=A9rez?= <eperezma@redhat.com>
586cba
Date: Thu, 21 Jul 2022 15:38:55 +0200
586cba
Subject: [PATCH 21/32] vdpa: Export vhost_vdpa_dma_map and unmap calls
586cba
MIME-Version: 1.0
586cba
Content-Type: text/plain; charset=UTF-8
586cba
Content-Transfer-Encoding: 8bit
586cba
586cba
RH-Author: Eugenio Pérez <eperezma@redhat.com>
586cba
RH-MergeRequest: 108: Net Control Virtqueue shadow Support
586cba
RH-Commit: [21/27] 97e7a583bbd3c12a0786d53132812ec41702c190 (eperezmartin/qemu-kvm)
586cba
RH-Bugzilla: 1939363
586cba
RH-Acked-by: Stefano Garzarella <sgarzare@redhat.com>
586cba
RH-Acked-by: Cindy Lu <lulu@redhat.com>
586cba
RH-Acked-by: Laurent Vivier <lvivier@redhat.com>
586cba
586cba
Bugzilla: https://bugzilla.redhat.com/1939363
586cba
586cba
Upstream Status: git://git.qemu.org/qemu.git
586cba
586cba
commit 463ba1e3b8cf080812895c5f26d95d8d7db2e692
586cba
Author: Eugenio Pérez <eperezma@redhat.com>
586cba
Date:   Wed Jul 20 08:59:40 2022 +0200
586cba
586cba
    vdpa: Export vhost_vdpa_dma_map and unmap calls
586cba
586cba
    Shadow CVQ will copy buffers on qemu VA, so we avoid TOCTOU attacks from
586cba
    the guest that could set a different state in qemu device model and vdpa
586cba
    device.
586cba
586cba
    To do so, it needs to be able to map these new buffers to the device.
586cba
586cba
    Signed-off-by: Eugenio Pérez <eperezma@redhat.com>
586cba
    Acked-by: Jason Wang <jasowang@redhat.com>
586cba
    Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
586cba
    Signed-off-by: Jason Wang <jasowang@redhat.com>
586cba
586cba
Signed-off-by: Eugenio Pérez <eperezma@redhat.com>
586cba
---
586cba
 hw/virtio/vhost-vdpa.c         | 7 +++----
586cba
 include/hw/virtio/vhost-vdpa.h | 4 ++++
586cba
 2 files changed, 7 insertions(+), 4 deletions(-)
586cba
586cba
diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c
586cba
index 28df57b12e..14b02fe079 100644
586cba
--- a/hw/virtio/vhost-vdpa.c
586cba
+++ b/hw/virtio/vhost-vdpa.c
586cba
@@ -71,8 +71,8 @@ static bool vhost_vdpa_listener_skipped_section(MemoryRegionSection *section,
586cba
     return false;
586cba
 }
586cba
 
586cba
-static int vhost_vdpa_dma_map(struct vhost_vdpa *v, hwaddr iova, hwaddr size,
586cba
-                              void *vaddr, bool readonly)
586cba
+int vhost_vdpa_dma_map(struct vhost_vdpa *v, hwaddr iova, hwaddr size,
586cba
+                       void *vaddr, bool readonly)
586cba
 {
586cba
     struct vhost_msg_v2 msg = {};
586cba
     int fd = v->device_fd;
586cba
@@ -97,8 +97,7 @@ static int vhost_vdpa_dma_map(struct vhost_vdpa *v, hwaddr iova, hwaddr size,
586cba
     return ret;
586cba
 }
586cba
 
586cba
-static int vhost_vdpa_dma_unmap(struct vhost_vdpa *v, hwaddr iova,
586cba
-                                hwaddr size)
586cba
+int vhost_vdpa_dma_unmap(struct vhost_vdpa *v, hwaddr iova, hwaddr size)
586cba
 {
586cba
     struct vhost_msg_v2 msg = {};
586cba
     int fd = v->device_fd;
586cba
diff --git a/include/hw/virtio/vhost-vdpa.h b/include/hw/virtio/vhost-vdpa.h
586cba
index a29dbb3f53..7214eb47dc 100644
586cba
--- a/include/hw/virtio/vhost-vdpa.h
586cba
+++ b/include/hw/virtio/vhost-vdpa.h
586cba
@@ -39,4 +39,8 @@ typedef struct vhost_vdpa {
586cba
     VhostVDPAHostNotifier notifier[VIRTIO_QUEUE_MAX];
586cba
 } VhostVDPA;
586cba
 
586cba
+int vhost_vdpa_dma_map(struct vhost_vdpa *v, hwaddr iova, hwaddr size,
586cba
+                       void *vaddr, bool readonly);
586cba
+int vhost_vdpa_dma_unmap(struct vhost_vdpa *v, hwaddr iova, hwaddr size);
586cba
+
586cba
 #endif
586cba
-- 
586cba
2.31.1
586cba