From 2c8a59422c06fe1e37c85502d92ccdfb5e2ac987 Mon Sep 17 00:00:00 2001 From: Kevin Wolf Date: Tue, 19 Mar 2013 13:38:09 +0100 Subject: [PATCH] char: Fix return type of qemu_chr_fe_add_watch() 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 Signed-off-by: Anthony Liguori --- include/char/char.h | 4 ++-- qemu-char.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/char/char.h b/include/char/char.h index d6a03513bf..0326b2a47b 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 e6337971a5..4e011df3ec 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;