hw/net/xen_nic.c: Need free 'netdev->nic' in net_free() instead of net_disconnect()

net_init() and net_free() are pairs, net_connect() and net_disconnect()
are pairs. net_init() creates 'netdev->nic', so also need free it in
net_free().

Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
Chen Gang 2014-12-17 04:52:16 +08:00 committed by Stefan Hajnoczi
parent b4f72e31b9
commit d46858377b

View File

@ -410,10 +410,6 @@ static void net_disconnect(struct XenDevice *xendev)
xc_gnttab_munmap(netdev->xendev.gnttabdev, netdev->rxs, 1);
netdev->rxs = NULL;
}
if (netdev->nic) {
qemu_del_nic(netdev->nic);
netdev->nic = NULL;
}
}
static void net_event(struct XenDevice *xendev)
@ -427,6 +423,10 @@ static int net_free(struct XenDevice *xendev)
{
struct XenNetDev *netdev = container_of(xendev, struct XenNetDev, xendev);
if (netdev->nic) {
qemu_del_nic(netdev->nic);
netdev->nic = NULL;
}
g_free(netdev->mac);
return 0;
}