Signed-off-by: Amit Shah <[email protected]>
---
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