On Fri, Feb 06, 2015 at 09:37:54AM +0008, Jason Wang wrote: > On Thu, Feb 5, 2015 at 10:25 PM, Stefan Hajnoczi <stefa...@gmail.com> wrote: > >On Mon, Feb 02, 2015 at 03:06:37PM +0800, Jason Wang wrote: > >> We should del hub port when peer is deleted since it will not be reused > >> and will only be freed during exit. > >> Signed-off-by: Jason Wang <jasow...@redhat.com> > >> --- > >> net/net.c | 2 ++ > >> 1 file changed, 2 insertions(+) > >> diff --git a/net/net.c b/net/net.c > >> index 7acc162..74e651e 100644 > >> --- a/net/net.c > >> +++ b/net/net.c > >> @@ -996,6 +996,8 @@ void net_host_device_remove(Monitor *mon, const > >>QDict *qdict) > >> error_report("invalid host network device '%s'", device); > >> return; > >> } > >> + > >> + qemu_del_net_client(nc->peer); > >> qemu_del_net_client(nc); > >> } > > > >If qmp_netdev_del() is used the hub port will stay alive. > > This is true if it has a peer. And the port will be freed during the > deletion of its peer. If no peer, it will be deleted soon. This is > consistent with the behaviors of other type of netdevs. > > > >Should the peer deletion happen in qemu_del_net_client(), similar to the > >existing NIC peer check? > > > > /* If there is a peer NIC, delete and cleanup client, but do not free. > >*/ > > if (nc->peer && nc->peer->info->type == NET_CLIENT_OPTIONS_KIND_NIC) { > > > >This way the hub port is consistently deleted when its peer is deleted. > > Not sure, but if management always do netdev_del after device_del, it will > get an error.
Okay, I will merge this patch as-is. Stefan
pgpYgR8mfhiN4.pgp
Description: PGP signature