aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugenio Pérez <eperezma@redhat.com>2022-08-23 20:20:02 +0200
committerJason Wang <jasowang@redhat.com>2022-09-02 10:22:39 +0800
commit10dab9f2635b9bab23a2b29974b526e62bb61268 (patch)
tree0ce161cbbdb97d1b204d257997a016dc20caf606
parent7dd9d7e0bd29abf590d1ac235c0a00606ef81153 (diff)
downloadqemu-10dab9f2635b9bab23a2b29974b526e62bb61268.zip
qemu-10dab9f2635b9bab23a2b29974b526e62bb61268.tar.gz
qemu-10dab9f2635b9bab23a2b29974b526e62bb61268.tar.bz2
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 3ff9ce3..983d369 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);
}