summaryrefslogtreecommitdiff
path: root/qemu-char.c
diff options
context:
space:
mode:
authorKirill Batuzov <batuzovk@ispras.ru>2014-07-04 16:43:15 +0400
committerMichael S. Tsirkin <mst@redhat.com>2014-07-06 09:13:54 +0300
commit3f0838ab8557c6071a5931183b2d7fed568cd35c (patch)
tree00b0bf9877fa4a933040961dc7fa95100b6cc5c3 /qemu-char.c
parent8b81bb3b069d4007bc44c8d5888d630b7f0b42ff (diff)
downloadqemu-3f0838ab8557c6071a5931183b2d7fed568cd35c.tar.gz
qemu-char: add chr_add_watch support in mux chardev
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>
Diffstat (limited to 'qemu-char.c')
-rw-r--r--qemu-char.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/qemu-char.c b/qemu-char.c
index 22a9777f49..55e372cf32 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
*/