Re: [Qemu-devel] [PATCH] qxl: allowing the command rings to be not empty when spice worker is stopped RHBZ #728984

2011-08-10 Thread Gerd Hoffmann

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



[Qemu-devel] [PATCH] qxl: allowing the command rings to be not empty when spice worker is stopped RHBZ #728984

2011-08-09 Thread Yonit Halperin
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);
-- 
1.7.4.4