diff mbox

qemu-char: add chr_add_watch support in mux chardev

Message ID 1404477795-1067-1-git-send-email-batuzovk@ispras.ru
State New
Headers show

Commit Message

Kirill Batuzov July 4, 2014, 12:43 p.m. UTC
Forward chr_add_watch call from mux chardev to underlying
implementation.

This should fix bug #1335444

Signed-off-by: Kirill Batuzov <batuzovk@ispras.ru>
---
 qemu-char.c |    9 +++++++++
 1 file changed, 9 insertions(+)

Comments

Paolo Bonzini July 4, 2014, 1:23 p.m. UTC | #1
Il 04/07/2014 14:43, Kirill Batuzov ha scritto:
> Forward chr_add_watch call from mux chardev to underlying
> implementation.
>
> This should fix bug #1335444
>
> Signed-off-by: Kirill Batuzov <batuzovk@ispras.ru>
> ---
>  qemu-char.c |    9 +++++++++
>  1 file changed, 9 insertions(+)
>
> diff --git a/qemu-char.c b/qemu-char.c
> index 51917de..e1bd6f5 100644
> --- a/qemu-char.c
> +++ b/qemu-char.c
> @@ -581,6 +581,12 @@ static Notifier muxes_realize_notify = {
>      .notify = muxes_realize_done,
>  };
>
> +static GSource *mux_chr_add_watch(CharDriverState *s, GIOCondition cond)
> +{
> +    MuxDriver *d = s->opaque;
> +    return d->drv->chr_add_watch(d->drv, cond);
> +}
> +
>  static CharDriverState *qemu_chr_open_mux(CharDriverState *drv)
>  {
>      CharDriverState *chr;
> @@ -597,6 +603,9 @@ static CharDriverState *qemu_chr_open_mux(CharDriverState *drv)
>      chr->chr_accept_input = mux_chr_accept_input;
>      /* Frontend guest-open / -close notification is not support with muxes */
>      chr->chr_set_fe_open = NULL;
> +    if (drv->chr_add_watch) {
> +        chr->chr_add_watch = mux_chr_add_watch;
> +    }
>      /* only default to opened state if we've realized the initial
>       * set of muxes
>       */
>

Thanks, looks good.

Paolo
Michael S. Tsirkin July 6, 2014, 5:42 a.m. UTC | #2
On Fri, Jul 04, 2014 at 04:43:15PM +0400, Kirill Batuzov wrote:
> Forward chr_add_watch call from mux chardev to underlying
> implementation.
> 
> This should fix bug #1335444
> 
> Signed-off-by: Kirill Batuzov <batuzovk@ispras.ru>

Applied for this once, but please note 2.1 patches
need to be tagged explicitly from now on.

> ---
>  qemu-char.c |    9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/qemu-char.c b/qemu-char.c
> index 51917de..e1bd6f5 100644
> --- a/qemu-char.c
> +++ b/qemu-char.c
> @@ -581,6 +581,12 @@ static Notifier muxes_realize_notify = {
>      .notify = muxes_realize_done,
>  };
>  
> +static GSource *mux_chr_add_watch(CharDriverState *s, GIOCondition cond)
> +{
> +    MuxDriver *d = s->opaque;
> +    return d->drv->chr_add_watch(d->drv, cond);
> +}
> +
>  static CharDriverState *qemu_chr_open_mux(CharDriverState *drv)
>  {
>      CharDriverState *chr;
> @@ -597,6 +603,9 @@ static CharDriverState *qemu_chr_open_mux(CharDriverState *drv)
>      chr->chr_accept_input = mux_chr_accept_input;
>      /* Frontend guest-open / -close notification is not support with muxes */
>      chr->chr_set_fe_open = NULL;
> +    if (drv->chr_add_watch) {
> +        chr->chr_add_watch = mux_chr_add_watch;
> +    }
>      /* only default to opened state if we've realized the initial
>       * set of muxes
>       */
> -- 
> 1.7.10.4
diff mbox

Patch

diff --git a/qemu-char.c b/qemu-char.c
index 51917de..e1bd6f5 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -581,6 +581,12 @@  static Notifier muxes_realize_notify = {
     .notify = muxes_realize_done,
 };
 
+static GSource *mux_chr_add_watch(CharDriverState *s, GIOCondition cond)
+{
+    MuxDriver *d = s->opaque;
+    return d->drv->chr_add_watch(d->drv, cond);
+}
+
 static CharDriverState *qemu_chr_open_mux(CharDriverState *drv)
 {
     CharDriverState *chr;
@@ -597,6 +603,9 @@  static CharDriverState *qemu_chr_open_mux(CharDriverState *drv)
     chr->chr_accept_input = mux_chr_accept_input;
     /* Frontend guest-open / -close notification is not support with muxes */
     chr->chr_set_fe_open = NULL;
+    if (drv->chr_add_watch) {
+        chr->chr_add_watch = mux_chr_add_watch;
+    }
     /* only default to opened state if we've realized the initial
      * set of muxes
      */