Patchwork qxl: better cleanup for surface destroy

login
register
mail settings
Submitter Uri Lublin
Date Sept. 11, 2012, 7:09 a.m.
Message ID <9f87efc0d873f96a16b7385a0d36ebb7953eeed3.1347271865.git.uril@redhat.com>
Download mbox | patch
Permalink /patch/183035/
State New
Headers show

Comments

Uri Lublin - Sept. 11, 2012, 7:09 a.m.
Add back a call to qxl_spice_destroy_surface_wait_complete() in qxl_spice_destroy_surface_wait(),
that was removed by commit c480bb7da465186b84d8427e068ef7502e47ffbf

It is needed to complete surface-removal cleanup, for non async.
For async, qxl_spice_destroy_surface_wait_complete is called upon operation completion.

Signed-off-by: Uri Lublin <uril@redhat.com>
---
 hw/qxl.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
Alon Levy - Sept. 11, 2012, 7:23 a.m.
> Add back a call to qxl_spice_destroy_surface_wait_complete() in
> qxl_spice_destroy_surface_wait(),
> that was removed by commit c480bb7da465186b84d8427e068ef7502e47ffbf
> 
> It is needed to complete surface-removal cleanup, for non async.
> For async, qxl_spice_destroy_surface_wait_complete is called upon
> operation completion.

Looks good. Cc'ing Gerd.

> 
> Signed-off-by: Uri Lublin <uril@redhat.com>
> ---
>  hw/qxl.c |    1 +
>  1 files changed, 1 insertions(+), 0 deletions(-)
> 
> diff --git a/hw/qxl.c b/hw/qxl.c
> index c2dd3b4..43a2bdf 100644
> --- a/hw/qxl.c
> +++ b/hw/qxl.c
> @@ -196,6 +196,7 @@ static void
> qxl_spice_destroy_surface_wait(PCIQXLDevice *qxl, uint32_t id,
>          spice_qxl_destroy_surface_async(&qxl->ssd.qxl, id,
>          (uintptr_t)cookie);
>      } else {
>          qxl->ssd.worker->destroy_surface_wait(qxl->ssd.worker, id);
> +        qxl_spice_destroy_surface_wait_complete(qxl, id);
>      }
>  }
>  
> --
> 1.7.1
> 
> 
>

Patch

diff --git a/hw/qxl.c b/hw/qxl.c
index c2dd3b4..43a2bdf 100644
--- a/hw/qxl.c
+++ b/hw/qxl.c
@@ -196,6 +196,7 @@  static void qxl_spice_destroy_surface_wait(PCIQXLDevice *qxl, uint32_t id,
         spice_qxl_destroy_surface_async(&qxl->ssd.qxl, id, (uintptr_t)cookie);
     } else {
         qxl->ssd.worker->destroy_surface_wait(qxl->ssd.worker, id);
+        qxl_spice_destroy_surface_wait_complete(qxl, id);
     }
 }