From c8075ac370e08190271ed7b6b1b81e45160d4c2b Mon Sep 17 00:00:00 2001 From: Gleb Natapov Date: Wed, 17 Jun 2009 19:32:02 +0300 Subject: [PATCH] Register usb-uhci reset function. The device is not reset on system reset currently. Without this patch RHEL4.8 hangs after reboot if -usbdevice table is in use. Signed-off-by: Gleb Natapov --- hw/usb-uhci.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/hw/usb-uhci.c b/hw/usb-uhci.c index 00e740b47d..ea83bdc3ee 100644 --- a/hw/usb-uhci.c +++ b/hw/usb-uhci.c @@ -319,8 +319,9 @@ static void uhci_update_irq(UHCIState *s) qemu_set_irq(s->dev.irq[3], level); } -static void uhci_reset(UHCIState *s) +static void uhci_reset(void *opaque) { + UHCIState *s = opaque; uint8_t *pci_conf; int i; UHCIPort *port; @@ -1093,6 +1094,7 @@ void usb_uhci_piix3_init(PCIBus *bus, int devfn) } s->frame_timer = qemu_new_timer(vm_clock, uhci_frame_timer, s); + qemu_register_reset(uhci_reset, 0, s); uhci_reset(s); /* Use region 4 for consistency with real hardware. BSD guests seem @@ -1127,6 +1129,7 @@ void usb_uhci_piix4_init(PCIBus *bus, int devfn) } s->frame_timer = qemu_new_timer(vm_clock, uhci_frame_timer, s); + qemu_register_reset(uhci_reset, 0, s); uhci_reset(s); /* Use region 4 for consistency with real hardware. BSD guests seem