Signed-off-by: Amit Shah <amit.s...@redhat.com> --- qemu-char.c | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-)
diff --git a/qemu-char.c b/qemu-char.c index 4b26ff9..88ed131 100644 --- a/qemu-char.c +++ b/qemu-char.c @@ -844,10 +844,7 @@ static gboolean fd_chr_read(GIOChannel *chan, GIOCondition cond, void *opaque) status = g_io_channel_read_chars(chan, (gchar *)buf, len, &bytes_read, NULL); if (status == G_IO_STATUS_EOF) { - if (s->fd_in_tag) { - io_remove_watch_poll(s->fd_in_tag); - s->fd_in_tag = 0; - } + fd_chr_detach(chr); qemu_chr_be_event(chr, CHR_EVENT_CLOSED); return FALSE; } @@ -877,11 +874,7 @@ static void fd_chr_update_read_handler(CharDriverState *chr) { FDCharDriver *s = chr->opaque; - if (s->fd_in_tag) { - io_remove_watch_poll(s->fd_in_tag); - s->fd_in_tag = 0; - } - + fd_chr_detach(chr); if (s->fd_in) { s->fd_in_tag = io_add_watch_poll(s->fd_in, fd_chr_read_poll, fd_chr_read, chr); } @@ -891,11 +884,7 @@ static void fd_chr_close(struct CharDriverState *chr) { FDCharDriver *s = chr->opaque; - if (s->fd_in_tag) { - io_remove_watch_poll(s->fd_in_tag); - s->fd_in_tag = 0; - } - + fd_chr_detach(chr); if (s->fd_in) { g_io_channel_unref(s->fd_in); } -- 1.8.3.1