[Spice-devel] [PATCH] qxl: allowing the command rings to be not empty when spice worker is stopped RHBZ #728984
Arnon Gilboa
agilboa at redhat.com
Tue Aug 9 06:15:51 PDT 2011
Acked-by: Arnon Gilboa <agilboa at 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);
>
More information about the Spice-devel
mailing list