Signed-off-by: Amit Shah <amit.s...@redhat.com> --- qemu-char.c | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-)
diff --git a/qemu-char.c b/qemu-char.c index d667e8c..2caab95 100644 --- a/qemu-char.c +++ b/qemu-char.c @@ -2240,10 +2240,7 @@ static gboolean udp_chr_read(GIOChannel *chan, GIOCondition cond, void *opaque) s->bufcnt = bytes_read; s->bufptr = s->bufcnt; if (status != G_IO_STATUS_NORMAL) { - if (s->tag) { - io_remove_watch_poll(s->tag); - s->tag = 0; - } + udp_chr_detach(chr); return FALSE; } @@ -2261,11 +2258,7 @@ static void udp_chr_update_read_handler(CharDriverState *chr) { NetCharDriver *s = chr->opaque; - if (s->tag) { - io_remove_watch_poll(s->tag); - s->tag = 0; - } - + udp_chr_detach(chr); if (s->chan) { s->tag = io_add_watch_poll(s->chan, udp_chr_read_poll, udp_chr_read, chr); } @@ -2274,10 +2267,8 @@ static void udp_chr_update_read_handler(CharDriverState *chr) static void udp_chr_close(CharDriverState *chr) { NetCharDriver *s = chr->opaque; - if (s->tag) { - io_remove_watch_poll(s->tag); - s->tag = 0; - } + + udp_chr_detach(chr); if (s->chan) { g_io_channel_unref(s->chan); closesocket(s->fd); -- 1.8.3.1