Commit 27806d2ddb for qemu.org

commit 27806d2ddba2da97fb4137cba7d4172356c42914
Author: Michael S. Tsirkin <mst@redhat.com>
Date:   Wed Jul 8 11:35:14 2026 -0400

    vhost: do not crash on ring map failure

    When vhost_commit() rebuilds the memory region table after a flatview
    change, it revalidates cached host virtual addresses for active vring
    parts. If a mapping is stale, QEMU abort().

    This is not a security problem - only the priviledged guest
    can control make it invalid - but not nice e.g. for driver debugging.

    Let's call virtio_error() instead, marking the device as broken.

    Fixes: 0ca1fd2d68 ("vhost: Simplify ring verification checks")
    Resolves: https://gitlab.com/qemu-project/qemu/-/work_items/3783
    Cc: Stefano Garzarella <sgarzare@redhat.com>
    Cc: Dr. David Alan Gilbert <dave@treblig.org>
    Reported-by: Feifan Qian <bea1e@proton.me>
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Message-ID: <71961a7dc157f552303aeea8c99a75c5e1ce904e.1784898432.git.mst@redhat.com>
    Reviewed-by: Dr. David Alan Gilbert <dave@treblig.org>

diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c
index af41841b52..371dca17dd 100644
--- a/hw/virtio/vhost.c
+++ b/hw/virtio/vhost.c
@@ -755,8 +755,9 @@ static void vhost_commit(MemoryListener *listener)
                        (void *)(uintptr_t)dev->mem->regions[i].userspace_addr,
                        dev->mem->regions[i].guest_phys_addr,
                        dev->mem->regions[i].memory_size)) {
-            error_report("Verify ring failure on region %d", i);
-            abort();
+            virtio_error(dev->vdev,
+                         "Verify ring failure on region %d", i);
+            goto out;
         }
     }