When vhost net enabled, we should be sure that the user space fd handler is not in flight
Signed-off-by: Liu Ping Fan <pingf...@linux.vnet.ibm.com> --- net/tap.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) diff --git a/net/tap.c b/net/tap.c index e19bb07..a3947eb 100644 --- a/net/tap.c +++ b/net/tap.c @@ -324,6 +324,11 @@ static void tap_poll(NetClientState *nc, bool enable) /* 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