Commit d4685837 authored by Chen Gang's avatar Chen Gang Committed by Stefan Hajnoczi
Browse files

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: default avatarChen Gang <gang.chen.5i5j@gmail.com>
Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
parent b4f72e31
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -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;
}