[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC PATCH v2 2/4] net: resolve race of tap backend and its
From: |
Liu Ping Fan |
Subject: |
[Qemu-devel] [RFC PATCH v2 2/4] net: resolve race of tap backend and its peer |
Date: |
Thu, 28 Mar 2013 15:55:53 +0800 |
From: Liu Ping Fan <address@hidden>
Signed-off-by: Liu Ping Fan <address@hidden>
---
net/tap.c | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/net/tap.c b/net/tap.c
index 0b663d1..401161c 100644
--- a/net/tap.c
+++ b/net/tap.c
@@ -321,9 +321,14 @@ static void tap_cleanup(NetClientState *nc)
static void tap_poll(NetClientState *nc, bool enable)
{
TAPState *s = DO_UPCAST(TAPState, nc, nc);
- /* fixme, when tap backend on another thread, the disable should be sync */
+
tap_read_poll(s, enable);
tap_write_poll(s, enable);
+
+ if (!enable) {
+ /* need sync so vhost can take over polling */
+ g_source_remove_poll(&nc->nsrc->source, &nc->nsrc->gfd);
+ }
}
int tap_get_fd(NetClientState *nc)
--
1.7.4.4
- [Qemu-devel] [RFC PATCH v2 0/4] port network layer onto glib, Liu Ping Fan, 2013/03/28
- [Qemu-devel] [RFC PATCH v2 3/4] net: port hub onto glib, Liu Ping Fan, 2013/03/28
- [Qemu-devel] [RFC PATCH v2 4/4] net: port virtio net onto glib, Liu Ping Fan, 2013/03/28
- Re: [Qemu-devel] [RFC PATCH v2 0/4] port network layer onto glib, Paolo Bonzini, 2013/03/28
- Re: [Qemu-devel] [RFC PATCH v2 0/4] port network layer onto glib, Stefan Hajnoczi, 2013/03/28