net: clean up network at qemu process termination
We don't clean up network if fails to parse "-device" parameters without calling net_cleanup(). I touch a problem, the tap device which is created by qemu-ifup script could not be removed by qemu-ifdown script. Some similar problems also exist in vl.c In this patch, if network initialization successes, a cleanup function will be registered to be called at qemu process termination. Signed-off-by: Amos Kong <akong@redhat.com> Acked-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
parent
2c0331f4f7
commit
f30dbae63a
4
vl.c
4
vl.c
@ -3762,6 +3762,9 @@ int main(int argc, char **argv, char **envp)
|
|||||||
}
|
}
|
||||||
configure_icount(icount_option);
|
configure_icount(icount_option);
|
||||||
|
|
||||||
|
/* clean up network at qemu process termination */
|
||||||
|
atexit(&net_cleanup);
|
||||||
|
|
||||||
if (net_init_clients() < 0) {
|
if (net_init_clients() < 0) {
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
@ -4014,7 +4017,6 @@ int main(int argc, char **argv, char **envp)
|
|||||||
main_loop();
|
main_loop();
|
||||||
bdrv_close_all();
|
bdrv_close_all();
|
||||||
pause_all_vcpus();
|
pause_all_vcpus();
|
||||||
net_cleanup();
|
|
||||||
res_free();
|
res_free();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user