Patchwork char: Fix return type of qemu_chr_fe_add_watch()

login
register
mail settings
Submitter Kevin Wolf
Date March 19, 2013, 12:38 p.m.
Message ID <1363696689-26849-1-git-send-email-kwolf@redhat.com>
Download mbox | patch
Permalink /patch/229043/
State New
Headers show

Comments

Kevin Wolf - March 19, 2013, 12:38 p.m.
qemu_chr_fe_add_watch() can return negative errors, therefore it must
not have an unsigned return type. For consistency with other
qemu_chr_fe_* functions, this uses a standard C int instead of glib
types.

In situations where qemu_chr_fe_add_watch() is falsely assumed to have
succeeded, the serial ports would go into a state where it never becomes
ready for transmitting more data; this is fixed by this patch.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 include/char/char.h | 4 ++--
 qemu-char.c         | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)
Anthony Liguori - March 19, 2013, 6:58 p.m.
Applied.  Thanks.

Regards,

Anthony Liguori

Patch

diff --git a/include/char/char.h b/include/char/char.h
index d6a0351..0326b2a 100644
--- a/include/char/char.h
+++ b/include/char/char.h
@@ -153,8 +153,8 @@  void qemu_chr_fe_close(struct CharDriverState *chr);
 void qemu_chr_fe_printf(CharDriverState *s, const char *fmt, ...)
     GCC_FMT_ATTR(2, 3);
 
-guint qemu_chr_fe_add_watch(CharDriverState *s, GIOCondition cond,
-                            GIOFunc func, void *user_data);
+int qemu_chr_fe_add_watch(CharDriverState *s, GIOCondition cond,
+                          GIOFunc func, void *user_data);
 
 /**
  * @qemu_chr_fe_write:
diff --git a/qemu-char.c b/qemu-char.c
index e633797..4e011df 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -3397,8 +3397,8 @@  void qemu_chr_fe_close(struct CharDriverState *chr)
     }
 }
 
-guint qemu_chr_fe_add_watch(CharDriverState *s, GIOCondition cond,
-                            GIOFunc func, void *user_data)
+int qemu_chr_fe_add_watch(CharDriverState *s, GIOCondition cond,
+                          GIOFunc func, void *user_data)
 {
     GSource *src;
     guint tag;