Re: [Spice-devel] [PATCH v2 12/19] Support QXL remove on spice_server_remove_interface

2016-12-01 Thread Frediano Ziglio
Taking into account that in a following patch the object is destroyed
automatically with spice_server_destroy this patch get less important.

Currently QXL interfaces are added when physical card are added and
QXL cards don't support (in Qemu) hot swap so there is no reason to
have this feature. Unless we want to support hot swap. I'll add some
comments and move the commit.
This can't cause unexpected side effects as is currently dead code.

Frediano

> 
> This most likely deserves a longer commit log explaining why we want
> that (and maybe why it's not going to cause unexpected side effects in
> existing code).
> 
> Christophe
> 
> On Fri, Nov 25, 2016 at 02:52:42PM +, Frediano Ziglio wrote:
> > Signed-off-by: Frediano Ziglio 
> > ---
> >  server/reds.c | 7 +++
> >  1 file changed, 7 insertions(+)
> > 
> > diff --git a/server/reds.c b/server/reds.c
> > index bc0cc01..05afb7c 100644
> > --- a/server/reds.c
> > +++ b/server/reds.c
> > @@ -3321,6 +3321,13 @@ SPICE_GNUC_VISIBLE int
> > spice_server_remove_interface(SpiceBaseInstance *sin)
> >  SpiceCharDeviceInstance *char_device = SPICE_CONTAINEROF(sin,
> >  SpiceCharDeviceInstance, base);
> >  reds = red_char_device_get_server(char_device->st);
> >  spice_server_char_device_remove_interface(reds, sin);
> > +} else if (strcmp(interface->type, SPICE_INTERFACE_QXL) == 0) {
> > +QXLInstance *qxl;
> > +
> > +qxl = SPICE_CONTAINEROF(sin, QXLInstance, base);
> > +reds = red_qxl_get_server(qxl->st);
> > +reds->qxl_instances = g_list_remove(reds->qxl_instances, qxl);
> > +red_qxl_destroy(qxl);
> >  } else {
> >  spice_warning("VD_INTERFACE_REMOVING unsupported");
> >  return -1;
> > --
> > git-series 0.9.1
> > ___
> > Spice-devel mailing list
> > Spice-devel@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/spice-devel
> 
___
Spice-devel mailing list
Spice-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/spice-devel


Re: [Spice-devel] [PATCH v2 12/19] Support QXL remove on spice_server_remove_interface

2016-12-01 Thread Frediano Ziglio
> 
> Could be called in replay ? Or is it called indirectly ?
> 
> Pavel
> 

Yes and not. While I was writing this series spice-server-replay
was using it. However now this is done automatically by
"Free QXL instances in spice_server_destroy" so replay utility
has no reason to free the interface.

Frediano

> On Fri, 2016-11-25 at 14:52 +, Frediano Ziglio wrote:
> Signed-off-by: Frediano Ziglio 
> > ---
> >  server/reds.c | 7 +++
> >  1 file changed, 7 insertions(+)
> > 
> > diff --git a/server/reds.c b/server/reds.c
> > index bc0cc01..05afb7c 100644
> > --- a/server/reds.c
> > +++ b/server/reds.c
> > @@ -3321,6 +3321,13 @@ SPICE_GNUC_VISIBLE int
> > spice_server_remove_interface(SpiceBaseInstance *sin)
> >  SpiceCharDeviceInstance *char_device =
> > SPICE_CONTAINEROF(sin, SpiceCharDeviceInstance, base);
> >  reds = red_char_device_get_server(char_device->st);
> >  spice_server_char_device_remove_interface(reds, sin);
> > +} else if (strcmp(interface->type, SPICE_INTERFACE_QXL) == 0) {
> > +QXLInstance *qxl;
> > +
> > +qxl = SPICE_CONTAINEROF(sin, QXLInstance, base);
> > +reds = red_qxl_get_server(qxl->st);
> > +reds->qxl_instances = g_list_remove(reds->qxl_instances,
> > qxl);
> > +red_qxl_destroy(qxl);
> >  } else {
> >  spice_warning("VD_INTERFACE_REMOVING unsupported");
> >  return -1;
> 
___
Spice-devel mailing list
Spice-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/spice-devel


Re: [Spice-devel] [PATCH v2 12/19] Support QXL remove on spice_server_remove_interface

2016-11-30 Thread Pavel Grunt
Could be called in replay ? Or is it called indirectly ?

Pavel

On Fri, 2016-11-25 at 14:52 +, Frediano Ziglio wrote:
Signed-off-by: Frediano Ziglio 
> ---
>  server/reds.c | 7 +++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/server/reds.c b/server/reds.c
> index bc0cc01..05afb7c 100644
> --- a/server/reds.c
> +++ b/server/reds.c
> @@ -3321,6 +3321,13 @@ SPICE_GNUC_VISIBLE int
> spice_server_remove_interface(SpiceBaseInstance *sin)
>  SpiceCharDeviceInstance *char_device =
> SPICE_CONTAINEROF(sin, SpiceCharDeviceInstance, base);
>  reds = red_char_device_get_server(char_device->st);
>  spice_server_char_device_remove_interface(reds, sin);
> +} else if (strcmp(interface->type, SPICE_INTERFACE_QXL) == 0) {
> +QXLInstance *qxl;
> +
> +qxl = SPICE_CONTAINEROF(sin, QXLInstance, base);
> +reds = red_qxl_get_server(qxl->st);
> +reds->qxl_instances = g_list_remove(reds->qxl_instances,
> qxl);
> +red_qxl_destroy(qxl);
>  } else {
>  spice_warning("VD_INTERFACE_REMOVING unsupported");
>  return -1;
___
Spice-devel mailing list
Spice-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/spice-devel