|
|
586cba |
From edde0b6a805085255bccc0ccdc3b9b6f81cef37b Mon Sep 17 00:00:00 2001
|
|
|
586cba |
From: =?UTF-8?q?Eugenio=20P=C3=A9rez?= <eperezma@redhat.com>
|
|
|
586cba |
Date: Tue, 23 Aug 2022 20:20:02 +0200
|
|
|
586cba |
Subject: [PATCH 03/23] vdpa: Skip the maps not in the iova tree
|
|
|
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: 116: vdpa: Restore device state on destination
|
|
|
586cba |
RH-Bugzilla: 2114060
|
|
|
586cba |
RH-Acked-by: Cindy Lu <lulu@redhat.com>
|
|
|
586cba |
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
|
586cba |
RH-Commit: [2/21] 73acd16375a17cdf4c58830386541dd3a1b18bf7 (eperezmartin/qemu-kvm)
|
|
|
586cba |
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2114060
|
|
|
586cba |
Upstream status: git@github.com:jasowang/qemu.git net-next
|
|
|
586cba |
|
|
|
586cba |
Next patch will skip the registering of dma maps that the vdpa device
|
|
|
586cba |
rejects in the iova tree. We need to consider that here or we cause a
|
|
|
586cba |
SIGSEGV accessing result.
|
|
|
586cba |
|
|
|
586cba |
Reported-by: Lei Yang <leiyang@redhat.com>
|
|
|
586cba |
Signed-off-by: Eugenio Pérez <eperezma@redhat.com>
|
|
|
586cba |
Acked-by: Jason Wang <jasowang@redhat.com>
|
|
|
586cba |
Signed-off-by: Jason Wang <jasowang@redhat.com>
|
|
|
586cba |
(cherry picked from commit a92ca0ffee5858636432a6059eb2790df1c9c77f)
|
|
|
586cba |
---
|
|
|
586cba |
hw/virtio/vhost-vdpa.c | 4 ++++
|
|
|
586cba |
1 file changed, 4 insertions(+)
|
|
|
586cba |
|
|
|
586cba |
diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c
|
|
|
586cba |
index 96334ab5b6..aa7765c6bc 100644
|
|
|
586cba |
--- a/hw/virtio/vhost-vdpa.c
|
|
|
586cba |
+++ b/hw/virtio/vhost-vdpa.c
|
|
|
586cba |
@@ -287,6 +287,10 @@ static void vhost_vdpa_listener_region_del(MemoryListener *listener,
|
|
|
586cba |
};
|
|
|
586cba |
|
|
|
586cba |
result = vhost_iova_tree_find_iova(v->iova_tree, &mem_region);
|
|
|
586cba |
+ if (!result) {
|
|
|
586cba |
+ /* The memory listener map wasn't mapped */
|
|
|
586cba |
+ return;
|
|
|
586cba |
+ }
|
|
|
586cba |
iova = result->iova;
|
|
|
586cba |
vhost_iova_tree_remove(v->iova_tree, result);
|
|
|
586cba |
}
|
|
|
586cba |
--
|
|
|
586cba |
2.31.1
|
|
|
586cba |
|