Commit c8075ac370e08190271ed7b6b1b81e45160d4c2b
Committed by
Blue Swirl
1 parent
bc26e55a
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 <gleb@redhat.com>
Showing
1 changed file
with
4 additions
and
1 deletions
hw/usb-uhci.c
@@ -319,8 +319,9 @@ static void uhci_update_irq(UHCIState *s) | @@ -319,8 +319,9 @@ static void uhci_update_irq(UHCIState *s) | ||
319 | qemu_set_irq(s->dev.irq[3], level); | 319 | qemu_set_irq(s->dev.irq[3], level); |
320 | } | 320 | } |
321 | 321 | ||
322 | -static void uhci_reset(UHCIState *s) | 322 | +static void uhci_reset(void *opaque) |
323 | { | 323 | { |
324 | + UHCIState *s = opaque; | ||
324 | uint8_t *pci_conf; | 325 | uint8_t *pci_conf; |
325 | int i; | 326 | int i; |
326 | UHCIPort *port; | 327 | UHCIPort *port; |
@@ -1093,6 +1094,7 @@ void usb_uhci_piix3_init(PCIBus *bus, int devfn) | @@ -1093,6 +1094,7 @@ void usb_uhci_piix3_init(PCIBus *bus, int devfn) | ||
1093 | } | 1094 | } |
1094 | s->frame_timer = qemu_new_timer(vm_clock, uhci_frame_timer, s); | 1095 | s->frame_timer = qemu_new_timer(vm_clock, uhci_frame_timer, s); |
1095 | 1096 | ||
1097 | + qemu_register_reset(uhci_reset, 0, s); | ||
1096 | uhci_reset(s); | 1098 | uhci_reset(s); |
1097 | 1099 | ||
1098 | /* Use region 4 for consistency with real hardware. BSD guests seem | 1100 | /* Use region 4 for consistency with real hardware. BSD guests seem |
@@ -1127,6 +1129,7 @@ void usb_uhci_piix4_init(PCIBus *bus, int devfn) | @@ -1127,6 +1129,7 @@ void usb_uhci_piix4_init(PCIBus *bus, int devfn) | ||
1127 | } | 1129 | } |
1128 | s->frame_timer = qemu_new_timer(vm_clock, uhci_frame_timer, s); | 1130 | s->frame_timer = qemu_new_timer(vm_clock, uhci_frame_timer, s); |
1129 | 1131 | ||
1132 | + qemu_register_reset(uhci_reset, 0, s); | ||
1130 | uhci_reset(s); | 1133 | uhci_reset(s); |
1131 | 1134 | ||
1132 | /* Use region 4 for consistency with real hardware. BSD guests seem | 1135 | /* Use region 4 for consistency with real hardware. BSD guests seem |