spice: drop obsolete iothread locking
We don't use qemu internals from spice server context any more. Thus we don't also need to grab the iothread mutex from spice server context. And we don't have to temporarely release the lock to avoid deadlocks. Drop all the calls. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
0753609458
commit
196a778428
8
hw/qxl.c
8
hw/qxl.c
@ -666,10 +666,8 @@ static void qxl_hard_reset(PCIQXLDevice *d, int loadvm)
|
||||
dprint(d, 1, "%s: start%s\n", __FUNCTION__,
|
||||
loadvm ? " (loadvm)" : "");
|
||||
|
||||
qemu_mutex_unlock_iothread();
|
||||
d->ssd.worker->reset_cursor(d->ssd.worker);
|
||||
d->ssd.worker->reset_image_cache(d->ssd.worker);
|
||||
qemu_mutex_lock_iothread();
|
||||
qxl_reset_surfaces(d);
|
||||
qxl_reset_memslots(d);
|
||||
|
||||
@ -799,9 +797,7 @@ static void qxl_reset_surfaces(PCIQXLDevice *d)
|
||||
{
|
||||
dprint(d, 1, "%s:\n", __FUNCTION__);
|
||||
d->mode = QXL_MODE_UNDEFINED;
|
||||
qemu_mutex_unlock_iothread();
|
||||
d->ssd.worker->destroy_surfaces(d->ssd.worker);
|
||||
qemu_mutex_lock_iothread();
|
||||
memset(&d->guest_surfaces.cmds, 0, sizeof(d->guest_surfaces.cmds));
|
||||
}
|
||||
|
||||
@ -870,9 +866,7 @@ 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)
|
||||
@ -942,10 +936,8 @@ static void ioport_write(void *opaque, uint32_t addr, uint32_t val)
|
||||
case QXL_IO_UPDATE_AREA:
|
||||
{
|
||||
QXLRect update = d->ram->update_area;
|
||||
qemu_mutex_unlock_iothread();
|
||||
d->ssd.worker->update_area(d->ssd.worker, d->ram->update_surface,
|
||||
&update, NULL, 0, 0);
|
||||
qemu_mutex_lock_iothread();
|
||||
break;
|
||||
}
|
||||
case QXL_IO_NOTIFY_CMD:
|
||||
|
@ -176,18 +176,14 @@ void qemu_spice_create_host_primary(SimpleSpiceDisplay *ssd)
|
||||
surface.mem = (intptr_t)ssd->buf;
|
||||
surface.group_id = MEMSLOT_GROUP_HOST;
|
||||
|
||||
qemu_mutex_unlock_iothread();
|
||||
ssd->worker->create_primary_surface(ssd->worker, 0, &surface);
|
||||
qemu_mutex_lock_iothread();
|
||||
}
|
||||
|
||||
void qemu_spice_destroy_host_primary(SimpleSpiceDisplay *ssd)
|
||||
{
|
||||
dprint(1, "%s:\n", __FUNCTION__);
|
||||
|
||||
qemu_mutex_unlock_iothread();
|
||||
ssd->worker->destroy_primary_surface(ssd->worker, 0);
|
||||
qemu_mutex_lock_iothread();
|
||||
}
|
||||
|
||||
void qemu_spice_vm_change_state_handler(void *opaque, int running, int reason)
|
||||
@ -197,9 +193,7 @@ void qemu_spice_vm_change_state_handler(void *opaque, int running, int reason)
|
||||
if (running) {
|
||||
ssd->worker->start(ssd->worker);
|
||||
} else {
|
||||
qemu_mutex_unlock_iothread();
|
||||
ssd->worker->stop(ssd->worker);
|
||||
qemu_mutex_lock_iothread();
|
||||
}
|
||||
ssd->running = running;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user