summaryrefslogtreecommitdiff
path: root/hw/qxl.c
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2011-01-21 10:32:03 +0100
committerGerd Hoffmann <kraxel@redhat.com>2011-01-24 15:15:15 +0100
commit17268d54be2e15b0d8ccfc4102bc48c84299b027 (patch)
tree12064a55dc4fd61e756d0e30ec536cd4288503ed /hw/qxl.c
parentb67737a6cf71d1f029a692e5dc2dc26579299b97 (diff)
downloadqemu-17268d54be2e15b0d8ccfc4102bc48c84299b027.tar.gz
qemu-17268d54be2e15b0d8ccfc4102bc48c84299b027.tar.bz2
qemu-17268d54be2e15b0d8ccfc4102bc48c84299b027.zip
qxl: locking fix
One spice worker call lacks the unlock/relock calls, which may lead to deadlocks, add them. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'hw/qxl.c')
-rw-r--r--hw/qxl.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/hw/qxl.c b/hw/qxl.c
index dcea65d982..fe4212bff0 100644
--- a/hw/qxl.c
+++ b/hw/qxl.c
@@ -866,7 +866,9 @@ static void qxl_destroy_primary(PCIQXLDevice *d)
dprint(d, 1, "%s\n", __FUNCTION__);
d->mode = QXL_MODE_UNDEFINED;
+ qemu_mutex_unlock_iothread();
d->ssd.worker->destroy_primary_surface(d->ssd.worker, 0);
+ qemu_mutex_lock_iothread();
}
static void qxl_set_mode(PCIQXLDevice *d, int modenr, int loadvm)