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:
Gerd Hoffmann 2011-04-27 16:06:10 +02:00
parent 0753609458
commit 196a778428
2 changed files with 0 additions and 14 deletions

View File

@ -666,10 +666,8 @@ static void qxl_hard_reset(PCIQXLDevice *d, int loadvm)
dprint(d, 1, "%s: start%s\n", __FUNCTION__, dprint(d, 1, "%s: start%s\n", __FUNCTION__,
loadvm ? " (loadvm)" : ""); loadvm ? " (loadvm)" : "");
qemu_mutex_unlock_iothread();
d->ssd.worker->reset_cursor(d->ssd.worker); d->ssd.worker->reset_cursor(d->ssd.worker);
d->ssd.worker->reset_image_cache(d->ssd.worker); d->ssd.worker->reset_image_cache(d->ssd.worker);
qemu_mutex_lock_iothread();
qxl_reset_surfaces(d); qxl_reset_surfaces(d);
qxl_reset_memslots(d); qxl_reset_memslots(d);
@ -799,9 +797,7 @@ static void qxl_reset_surfaces(PCIQXLDevice *d)
{ {
dprint(d, 1, "%s:\n", __FUNCTION__); dprint(d, 1, "%s:\n", __FUNCTION__);
d->mode = QXL_MODE_UNDEFINED; d->mode = QXL_MODE_UNDEFINED;
qemu_mutex_unlock_iothread();
d->ssd.worker->destroy_surfaces(d->ssd.worker); d->ssd.worker->destroy_surfaces(d->ssd.worker);
qemu_mutex_lock_iothread();
memset(&d->guest_surfaces.cmds, 0, sizeof(d->guest_surfaces.cmds)); 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__); dprint(d, 1, "%s\n", __FUNCTION__);
d->mode = QXL_MODE_UNDEFINED; d->mode = QXL_MODE_UNDEFINED;
qemu_mutex_unlock_iothread();
d->ssd.worker->destroy_primary_surface(d->ssd.worker, 0); 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) 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: case QXL_IO_UPDATE_AREA:
{ {
QXLRect update = d->ram->update_area; QXLRect update = d->ram->update_area;
qemu_mutex_unlock_iothread();
d->ssd.worker->update_area(d->ssd.worker, d->ram->update_surface, d->ssd.worker->update_area(d->ssd.worker, d->ram->update_surface,
&update, NULL, 0, 0); &update, NULL, 0, 0);
qemu_mutex_lock_iothread();
break; break;
} }
case QXL_IO_NOTIFY_CMD: case QXL_IO_NOTIFY_CMD:

View File

@ -176,18 +176,14 @@ void qemu_spice_create_host_primary(SimpleSpiceDisplay *ssd)
surface.mem = (intptr_t)ssd->buf; surface.mem = (intptr_t)ssd->buf;
surface.group_id = MEMSLOT_GROUP_HOST; surface.group_id = MEMSLOT_GROUP_HOST;
qemu_mutex_unlock_iothread();
ssd->worker->create_primary_surface(ssd->worker, 0, &surface); ssd->worker->create_primary_surface(ssd->worker, 0, &surface);
qemu_mutex_lock_iothread();
} }
void qemu_spice_destroy_host_primary(SimpleSpiceDisplay *ssd) void qemu_spice_destroy_host_primary(SimpleSpiceDisplay *ssd)
{ {
dprint(1, "%s:\n", __FUNCTION__); dprint(1, "%s:\n", __FUNCTION__);
qemu_mutex_unlock_iothread();
ssd->worker->destroy_primary_surface(ssd->worker, 0); 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) 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) { if (running) {
ssd->worker->start(ssd->worker); ssd->worker->start(ssd->worker);
} else { } else {
qemu_mutex_unlock_iothread();
ssd->worker->stop(ssd->worker); ssd->worker->stop(ssd->worker);
qemu_mutex_lock_iothread();
} }
ssd->running = running; ssd->running = running;
} }