From: Gonglei <arei.gong...@huawei.com> clean up uhci resource when uhci pci device exit.
Signed-off-by: Gonglei <arei.gong...@huawei.com> --- hw/usb/hcd-uhci.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/hw/usb/hcd-uhci.c b/hw/usb/hcd-uhci.c index c3bf72c..4e8a640 100644 --- a/hw/usb/hcd-uhci.c +++ b/hw/usb/hcd-uhci.c @@ -1260,7 +1260,23 @@ static void usb_uhci_exit(PCIDevice *dev) { UHCIState *s = DO_UPCAST(UHCIState, dev, dev); + if (s->frame_timer) { + timer_del(s->frame_timer); + timer_free(s->frame_timer); + s->frame_timer = NULL; + } + + if (s->bh) { + qemu_bh_delete(s->bh); + } + + uhci_async_cancel_all(s); + memory_region_destroy(&s->io_bar); + + if (!s->masterbus) { + usb_bus_release(&s->bus); + } } static Property uhci_properties[] = { -- 1.7.12.4