summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEugenio Pérez2022-08-23 20:20:02 +0200
committerJason Wang2022-09-02 04:22:39 +0200
commit10dab9f2635b9bab23a2b29974b526e62bb61268 (patch)
tree0ce161cbbdb97d1b204d257997a016dc20caf606
parentMerge tag 'pull-ppc-20220831' of https://gitlab.com/danielhb/qemu into staging (diff)
downloadqemu-10dab9f2635b9bab23a2b29974b526e62bb61268.tar.gz
qemu-10dab9f2635b9bab23a2b29974b526e62bb61268.tar.xz
qemu-10dab9f2635b9bab23a2b29974b526e62bb61268.zip
vdpa: Skip the maps not in the iova tree
Next patch will skip the registering of dma maps that the vdpa device rejects in the iova tree. We need to consider that here or we cause a SIGSEGV accessing result. Reported-by: Lei Yang <leiyang@redhat.com> Signed-off-by: Eugenio Pérez <eperezma@redhat.com> Acked-by: Jason Wang <jasowang@redhat.com> Signed-off-by: Jason Wang <jasowang@redhat.com>
-rw-r--r--hw/virtio/vhost-vdpa.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c
index 3ff9ce3501..983d3697b0 100644
--- a/hw/virtio/vhost-vdpa.c
+++ b/hw/virtio/vhost-vdpa.c
@@ -289,6 +289,10 @@ static void vhost_vdpa_listener_region_del(MemoryListener *listener,
};
result = vhost_iova_tree_find_iova(v->iova_tree, &mem_region);
+ if (!result) {
+ /* The memory listener map wasn't mapped */
+ return;
+ }
iova = result->iova;
vhost_iova_tree_remove(v->iova_tree, result);
}