On 06/22/2011 11:46 AM, Gerd Hoffmann wrote:

Hi,
Add wrapper functions for all spice worker calls.

Signed-off-by: Gerd Hoffmann<[email protected]>
---
  hw/qxl-render.c    |    4 +-
  hw/qxl.c           |   32 +++++++++---------
  ui/spice-display.c |   94 ++++++++++++++++++++++++++++++++++++++++++++++++---
  ui/spice-display.h |   20 +++++++++++
  4 files changed, 126 insertions(+), 24 deletions(-)



@@ -799,7 +799,7 @@ static void qxl_reset_surfaces(PCIQXLDevice *d)
  {
      dprint(d, 1, "%s:\n", __FUNCTION__);
      d->mode = QXL_MODE_UNDEFINED;
-    d->ssd.worker->destroy_surfaces(d->ssd.worker);
+    qemu_spice_destroy_surfaces(&d->ssd);
      memset(&d->guest_surfaces.cmds, 0, sizeof(d->guest_surfaces.cmds));
  }


zeroing the guest_surfaces should be moved to qemu_spice_destroy_surfaces. It is an older bug that it wasn't preformed on QXL_IO_DESTROY_ALL_SURFACES (which isn't actually called now, but once S3 support is committed, it will). The zeroing must be performed synchronically with worker->destroy_surfaces, since otherwise, asynchronous worker calls to interface_get_command might change the guest_surfaces again. Also, not related to async io - the guest_surfaces.count should be zeroed too.

Cheers,
Yonit.



_______________________________________________
Spice-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/spice-devel

Reply via email to