Message ID | 1312895560-5965-1-git-send-email-yhalperi@redhat.com |
---|---|
State | New |
Headers | show |
Acked-by: Arnon Gilboa <agilboa@redhat.com> Yonit Halperin wrote: > 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. > --- > hw/qxl.c | 8 +++----- > 1 files changed, 3 insertions(+), 5 deletions(-) > > diff --git a/hw/qxl.c b/hw/qxl.c > index db7ae7a..7991e70 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); >
On 08/09/11 15:12, Yonit Halperin wrote: > 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. Added to spice patch queue. thanks, Gerd
diff --git a/hw/qxl.c b/hw/qxl.c index db7ae7a..7991e70 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);