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:
parent
b4f72e31b9
commit
d46858377b
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user