If the virtqueues is waiting to be processed, make sure to wake it up.

Signed-off-by: Marc-André Lureau <marcandre.lur...@redhat.com>
---
 hw/display/virtio-gpu.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/hw/display/virtio-gpu.c b/hw/display/virtio-gpu.c
index 45fc018..a37d5f2 100644
--- a/hw/display/virtio-gpu.c
+++ b/hw/display/virtio-gpu.c
@@ -996,7 +996,11 @@ static void virtio_gpu_gl_block(void *opaque, bool block)
     assert(g->renderer_blocked >= 0);
 
     if (g->renderer_blocked == 0) {
-        virtio_gpu_process_cmdq(g);
+        if (VIRTIO_GPU_DATA_PLANE_OK(g->dp)) {
+            qemu_bh_schedule(g->dp->thread_process_bh);
+        } else {
+            virtio_gpu_process_cmdq(g);
+        }
     }
 }
 
-- 
2.9.0


Reply via email to