We need to unlock the mutex before waiting on read via the worker call since the worker will try to lock and hang otherwise.
Signed-off-by: Alon Levy <al...@redhat.com> --- hw/qxl.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/hw/qxl.c b/hw/qxl.c index 117f7c8..00c31c7 100644 --- a/hw/qxl.c +++ b/hw/qxl.c @@ -791,7 +791,9 @@ static void qxl_add_memslot(PCIQXLDevice *d, uint32_t slot_id, uint64_t delta) __FUNCTION__, memslot.slot_id, memslot.virt_start, memslot.virt_end); + qxl_unlock_iothread(&d->ssd); d->ssd.worker->add_memslot(d->ssd.worker, &memslot); + qxl_lock_iothread(&d->ssd); d->guest_slots[slot_id].ptr = (void*)memslot.virt_start; d->guest_slots[slot_id].size = memslot.virt_end - memslot.virt_start; d->guest_slots[slot_id].delta = delta; -- 1.7.3.5