]> rtime.felk.cvut.cz Git - lisovros/qemu_apohw.git/commitdiff
qemu-char: add chr_add_watch support in mux chardev
authorKirill Batuzov <batuzovk@ispras.ru>
Fri, 4 Jul 2014 12:43:15 +0000 (16:43 +0400)
committerMichael S. Tsirkin <mst@redhat.com>
Sun, 6 Jul 2014 06:13:54 +0000 (09:13 +0300)
Forward chr_add_watch call from mux chardev to underlying
implementation.

This should fix bug #1335444

Signed-off-by: Kirill Batuzov <batuzovk@ispras.ru>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
qemu-char.c

index 22a9777f497af1562e9b0954572e42e17d55d5eb..55e372cf320d2135a053cde4097cc34bbbb1a6c0 100644 (file)
@@ -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
      */