qxl: lock current_async update in qxl_soft_reset
authorGerd Hoffmann <kraxel@redhat.com>
Tue, 20 Oct 2015 07:57:30 +0000 (09:57 +0200)
committerGerd Hoffmann <kraxel@redhat.com>
Tue, 1 Mar 2016 06:51:32 +0000 (07:51 +0100)
This should fix a defect report from Coverity.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
hw/display/qxl.c

index a423deeceab1ebfdb93b37bd8ffa1cfd691082b3..919dc5cd362f5b6e127e637edb3ae1836fdee25b 100644 (file)
@@ -1156,7 +1156,9 @@ static void qxl_soft_reset(PCIQXLDevice *d)
     trace_qxl_soft_reset(d->id);
     qxl_check_state(d);
     qxl_clear_guest_bug(d);
+    qemu_mutex_lock(&d->async_lock);
     d->current_async = QXL_UNDEFINED_IO;
+    qemu_mutex_unlock(&d->async_lock);
 
     if (d->id == 0) {
         qxl_enter_vga_mode(d);