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);
|
xc_gnttab_munmap(netdev->xendev.gnttabdev, netdev->rxs, 1);
|
||||||
netdev->rxs = NULL;
|
netdev->rxs = NULL;
|
||||||
}
|
}
|
||||||
if (netdev->nic) {
|
|
||||||
qemu_del_nic(netdev->nic);
|
|
||||||
netdev->nic = NULL;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void net_event(struct XenDevice *xendev)
|
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);
|
struct XenNetDev *netdev = container_of(xendev, struct XenNetDev, xendev);
|
||||||
|
|
||||||
|
if (netdev->nic) {
|
||||||
|
qemu_del_nic(netdev->nic);
|
||||||
|
netdev->nic = NULL;
|
||||||
|
}
|
||||||
g_free(netdev->mac);
|
g_free(netdev->mac);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue