Re: [Qemu-devel] [PATCH] qxl: upon reset, if spice worker is stopped, the command rings can be not empty

2011-07-14 Thread Gerd Hoffmann

On 07/12/11 10:51, Yonit Halperin wrote:

Spice worker does no longer process commands when it is stopped.
Otherwise, it might crash during migration when attempting to process
commands while the guest is not completely loaded.

Cc: Alon Levyal...@redhat.com
---
  hw/qxl.c |4 ++--
  1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/hw/qxl.c b/hw/qxl.c
index 0b9a4c7..a6fb7f0 100644
--- a/hw/qxl.c
+++ b/hw/qxl.c
@@ -656,8 +656,8 @@ static void qxl_reset_state(PCIQXLDevice *d)
  QXLRam *ram = d-ram;
  QXLRom *rom = d-rom;

-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));
  d-shadow_rom.update_id = cpu_to_le32(0);
  *rom = d-shadow_rom;
  qxl_rom_set_dirty(d);


Patch added to spice patch queue.

thanks,
  Gerd



[Qemu-devel] [PATCH] qxl: upon reset, if spice worker is stopped, the command rings can be not empty

2011-07-12 Thread Yonit Halperin
Spice worker does no longer process commands when it is stopped.
Otherwise, it might crash during migration when attempting to process
commands while the guest is not completely loaded.

Cc: Alon Levy al...@redhat.com
---
 hw/qxl.c |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/hw/qxl.c b/hw/qxl.c
index 0b9a4c7..a6fb7f0 100644
--- a/hw/qxl.c
+++ b/hw/qxl.c
@@ -656,8 +656,8 @@ static void qxl_reset_state(PCIQXLDevice *d)
 QXLRam *ram = d-ram;
 QXLRom *rom = d-rom;
 
-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));
 d-shadow_rom.update_id = cpu_to_le32(0);
 *rom = d-shadow_rom;
 qxl_rom_set_dirty(d);
-- 
1.7.4.4