From: Yonit Halperin Date: Tue, 9 Aug 2011 13:12:40 +0000 (+0300) Subject: qxl: allowing the command rings to be not empty when spice worker is stopped RHBZ... X-Git-Tag: v1.0-rc0~517^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=be48e9951214a78ebef025cefecfc77be3d1c13c;p=thirdparty%2Fqemu.git qxl: allowing the command rings to be not empty when spice worker is stopped RHBZ #728984 same as 8927cfbba232e28304734f7afd463c1b84134031, but for qxl_check_state, that was triggered by qxl_pre_load (which calls qxl_hard_reset, which calls qxl_soft_reset), and caused the migration target to crash. Signed-off-by: Gerd Hoffmann --- diff --git a/hw/qxl.c b/hw/qxl.c index db7ae7a8ff6..7991e70fbde 100644 --- a/hw/qxl.c +++ b/hw/qxl.c @@ -821,17 +821,15 @@ static void qxl_check_state(PCIQXLDevice *d) { QXLRam *ram = d->ram; - assert(SPICE_RING_IS_EMPTY(&ram->cmd_ring)); - assert(SPICE_RING_IS_EMPTY(&ram->cursor_ring)); + assert(!d->ssd.running || SPICE_RING_IS_EMPTY(&ram->cmd_ring)); + assert(!d->ssd.running || SPICE_RING_IS_EMPTY(&ram->cursor_ring)); } static void qxl_reset_state(PCIQXLDevice *d) { - QXLRam *ram = d->ram; QXLRom *rom = d->rom; - assert(!d->ssd.running || SPICE_RING_IS_EMPTY(&ram->cmd_ring)); - assert(!d->ssd.running || SPICE_RING_IS_EMPTY(&ram->cursor_ring)); + qxl_check_state(d); d->shadow_rom.update_id = cpu_to_le32(0); *rom = d->shadow_rom; qxl_rom_set_dirty(d);