This can avoid memory leak when hotunplug the ahci device. Signed-off-by: Li Qiang <liqiang...@360.cn> --- hw/ide/ahci.c | 8 ++++++++ 1 file changed, 8 insertions(+)
diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c index 3c19bda..56f68a8 100644 --- a/hw/ide/ahci.c +++ b/hw/ide/ahci.c @@ -1485,6 +1485,14 @@ void ahci_realize(AHCIState *s, DeviceState *qdev, AddressSpace *as, int ports) void ahci_uninit(AHCIState *s) { + int i; + + for (i = 0; i < s->ports; i++) { + AHCIDevice *ad = &s->dev[i]; + + ide_unregister_restart_cb(&ad->port); + ide_exit(&ad->port); + } g_free(s->dev); } -- 1.8.3.1