Commit efd581a8cd for qemu.org

commit efd581a8cd4405ca183ecd017072b0c878802d69
Author: Li Chen <chenl311@chinatelecom.cn>
Date:   Tue Jan 6 16:38:59 2026 +0800

    virtio-pmem: ignore empty queue notifications

    virtio_pmem_flush() treats a NULL return from virtqueue_pop() as a fatal
    error and calls virtio_error(), which puts the device into NEEDS_RESET.

    However, virtqueue handlers can be invoked when no element is available,
    so an empty queue should be handled as a benign no-op.

    With a Linux guest this avoids spurious NEEDS_RESET and the resulting
    -EIO propagation (e.g. EXT4 journal abort and remount-ro).

    Signed-off-by: Li Chen <me@linux.beauty>
    Acked-by: Michael S. Tsirkin <mst@redhat.com>
    Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Message-Id: <20260106083859.380338-1-me@linux.beauty>

diff --git a/hw/virtio/virtio-pmem.c b/hw/virtio/virtio-pmem.c
index 5381d59282..c3b3299c9c 100644
--- a/hw/virtio/virtio-pmem.c
+++ b/hw/virtio/virtio-pmem.c
@@ -73,7 +73,6 @@ static void virtio_pmem_flush(VirtIODevice *vdev, VirtQueue *vq)
     trace_virtio_pmem_flush_request();
     req_data = virtqueue_pop(vq, sizeof(VirtIODeviceRequest));
     if (!req_data) {
-        virtio_error(vdev, "virtio-pmem missing request data");
         return;
     }