Currently, I drop slirp and frontend related code (I guess I can reuse some code by mdroth's QContext later). And this series only resolve the net core re-entrant problem.
v1->v2: introduce netqueue re-entrant detection and defer it to BH Liu Ping Fan (6): net: introduce lock to protect NetQueue net: introduce lock to protect NetClientState's peer's access net: make netclient re-entrant with refcnt net: force NetQue opaque to be NetClientState net: defer nested call to BH net: hub use lock to protect ports list hw/core/qdev-properties-system.c | 14 +++++ include/net/net.h | 10 ++++ include/net/queue.h | 2 +- net/hub.c | 28 ++++++++- net/net.c | 124 +++++++++++++++++++++++++++++++++++++-- net/queue.c | 57 ++++++++++++++++-- net/slirp.c | 3 +- 7 files changed, 225 insertions(+), 13 deletions(-) -- 1.8.1.4