All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] iohandler: update qemu_fd_set_handler to work with null call back arg
@ 2011-09-07 10:45 Aneesh Kumar K.V
  0 siblings, 0 replies; only message in thread
From: Aneesh Kumar K.V @ 2011-09-07 10:45 UTC (permalink / raw)
  To: qemu-devel; +Cc: aliguori, Aneesh Kumar K.V

Many users of qemu_fd_set_handler including VirtFS use NULL call back arg.
Update fd_trampoline and qemu_fd_set_handler to work with NULL call back arg

Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
---
 iohandler.c |   31 ++++++++++++-------------------
 1 files changed, 12 insertions(+), 19 deletions(-)

diff --git a/iohandler.c b/iohandler.c
index 5ef66fb..b803208 100644
--- a/iohandler.c
+++ b/iohandler.c
@@ -93,10 +93,6 @@ static gboolean fd_trampoline(GIOChannel *chan, GIOCondition cond, gpointer opaq
 {
     IOTrampoline *tramp = opaque;
 
-    if (tramp->opaque == NULL) {
-        return FALSE;
-    }
-
     if ((cond & G_IO_IN) && tramp->fd_read) {
         tramp->fd_read(tramp->opaque);
     }
@@ -113,6 +109,7 @@ int qemu_set_fd_handler(int fd,
                         IOHandler *fd_write,
                         void *opaque)
 {
+    GIOCondition cond = 0;
     static IOTrampoline fd_trampolines[FD_SETSIZE];
     IOTrampoline *tramp = &fd_trampolines[fd];
 
@@ -121,25 +118,21 @@ int qemu_set_fd_handler(int fd,
         g_source_remove(tramp->tag);
     }
 
-    if (opaque) {
-        GIOCondition cond = 0;
-
-        tramp->fd_read = fd_read;
-        tramp->fd_write = fd_write;
-        tramp->opaque = opaque;
-
-        if (fd_read) {
-            cond |= G_IO_IN | G_IO_ERR;
-        }
+    tramp->fd_read = fd_read;
+    tramp->fd_write = fd_write;
+    tramp->opaque = opaque;
 
-        if (fd_write) {
-            cond |= G_IO_OUT | G_IO_ERR;
-        }
+    if (fd_read) {
+        cond |= G_IO_IN | G_IO_ERR;
+    }
 
-        tramp->chan = g_io_channel_unix_new(fd);
-        tramp->tag = g_io_add_watch(tramp->chan, cond, fd_trampoline, tramp);
+    if (fd_write) {
+        cond |= G_IO_OUT | G_IO_ERR;
     }
 
+    tramp->chan = g_io_channel_unix_new(fd);
+    tramp->tag = g_io_add_watch(tramp->chan, cond, fd_trampoline, tramp);
+
     return 0;
 }
 
-- 
1.7.4.1

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2011-09-07 10:45 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-09-07 10:45 [Qemu-devel] [PATCH] iohandler: update qemu_fd_set_handler to work with null call back arg Aneesh Kumar K.V

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.