mirror of https://github.com/xemu-project/xemu.git
qxl: allowing the command rings to be not empty when spice worker is stopped RHBZ #728984
same as 8927cfbba2
, 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 <kraxel@redhat.com>
This commit is contained in:
parent
b9c6cbff76
commit
be48e99512
8
hw/qxl.c
8
hw/qxl.c
|
@ -821,17 +821,15 @@ static void qxl_check_state(PCIQXLDevice *d)
|
||||||
{
|
{
|
||||||
QXLRam *ram = d->ram;
|
QXLRam *ram = d->ram;
|
||||||
|
|
||||||
assert(SPICE_RING_IS_EMPTY(&ram->cmd_ring));
|
assert(!d->ssd.running || SPICE_RING_IS_EMPTY(&ram->cmd_ring));
|
||||||
assert(SPICE_RING_IS_EMPTY(&ram->cursor_ring));
|
assert(!d->ssd.running || SPICE_RING_IS_EMPTY(&ram->cursor_ring));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void qxl_reset_state(PCIQXLDevice *d)
|
static void qxl_reset_state(PCIQXLDevice *d)
|
||||||
{
|
{
|
||||||
QXLRam *ram = d->ram;
|
|
||||||
QXLRom *rom = d->rom;
|
QXLRom *rom = d->rom;
|
||||||
|
|
||||||
assert(!d->ssd.running || SPICE_RING_IS_EMPTY(&ram->cmd_ring));
|
qxl_check_state(d);
|
||||||
assert(!d->ssd.running || SPICE_RING_IS_EMPTY(&ram->cursor_ring));
|
|
||||||
d->shadow_rom.update_id = cpu_to_le32(0);
|
d->shadow_rom.update_id = cpu_to_le32(0);
|
||||||
*rom = d->shadow_rom;
|
*rom = d->shadow_rom;
|
||||||
qxl_rom_set_dirty(d);
|
qxl_rom_set_dirty(d);
|
||||||
|
|
Loading…
Reference in New Issue