mirror of
https://github.com/qemu/qemu.git
synced 2024-11-26 12:23:36 +08:00
spice: stop server for qxl hard reset
Hard reset can happen at any time. We should be able to put qxl into a known-good state no matter what. Stop spice server thread for reset so it can't be confused by fetching stale commands lingering around in the rings while we reset is ongoing. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
b50f3e42b9
commit
75c70e37bc
@ -1144,8 +1144,14 @@ static void qxl_soft_reset(PCIQXLDevice *d)
|
||||
|
||||
static void qxl_hard_reset(PCIQXLDevice *d, int loadvm)
|
||||
{
|
||||
bool startstop = qemu_spice_display_is_running(&d->ssd);
|
||||
|
||||
trace_qxl_hard_reset(d->id, loadvm);
|
||||
|
||||
if (startstop) {
|
||||
qemu_spice_display_stop();
|
||||
}
|
||||
|
||||
qxl_spice_reset_cursor(d);
|
||||
qxl_spice_reset_image_cache(d);
|
||||
qxl_reset_surfaces(d);
|
||||
@ -1159,6 +1165,10 @@ static void qxl_hard_reset(PCIQXLDevice *d, int loadvm)
|
||||
}
|
||||
qemu_spice_create_host_memslot(&d->ssd);
|
||||
qxl_soft_reset(d);
|
||||
|
||||
if (startstop) {
|
||||
qemu_spice_display_start();
|
||||
}
|
||||
}
|
||||
|
||||
static void qxl_reset_handler(DeviceState *dev)
|
||||
|
Loading…
Reference in New Issue
Block a user