* [Qemu-devel] [5054] uhci: fixes for save/load-vm (Max Krasnyansky)
@ 2008-08-21 19:33 Anthony Liguori
0 siblings, 0 replies; only message in thread
From: Anthony Liguori @ 2008-08-21 19:33 UTC (permalink / raw)
To: qemu-devel
Revision: 5054
http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=5054
Author: aliguori
Date: 2008-08-21 19:33:09 +0000 (Thu, 21 Aug 2008)
Log Message:
-----------
uhci: fixes for save/load-vm (Max Krasnyansky)
For some reason we were not registering save/load-vm handler for piix3
flavor of UHCI and hence save/load was broken.
Async transactions need to be canceled when we save the VM because there
is no way we can save/restore all that state. Since we do not mess the
original TD/QH the driver will simply resubmit the transfers.
Tested with Windows XP-SP2 running under QEMU/KQEMU.
Signed-off-by: Max Krasnyansky <maxk@kernel.org>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Modified Paths:
--------------
trunk/hw/usb-uhci.c
Modified: trunk/hw/usb-uhci.c
===================================================================
--- trunk/hw/usb-uhci.c 2008-08-21 19:32:29 UTC (rev 5053)
+++ trunk/hw/usb-uhci.c 2008-08-21 19:33:09 UTC (rev 5054)
@@ -310,6 +310,8 @@
int i;
UHCIPort *port;
+ dprintf("uhci: full reset\n");
+
pci_conf = s->dev.config;
pci_conf[0x6a] = 0x01; /* usb clock */
@@ -331,13 +333,14 @@
uhci_async_cancel_all(s);
}
-#if 1
static void uhci_save(QEMUFile *f, void *opaque)
{
UHCIState *s = opaque;
uint8_t num_ports = NB_PORTS;
int i;
+ uhci_async_cancel_all(s);
+
pci_device_save(&s->dev, f);
qemu_put_8s(f, &num_ports);
@@ -383,7 +386,6 @@
return 0;
}
-#endif
static void uhci_ioport_writeb(void *opaque, uint32_t addr, uint32_t val)
{
@@ -1009,6 +1011,8 @@
qemu_del_timer(s->frame_timer);
/* set hchalted bit in status - UHCI11D 2.1.2 */
s->status |= UHCI_STS_HCHALTED;
+
+ dprintf("uhci: halted\n");
return;
}
@@ -1082,6 +1086,8 @@
to rely on this. */
pci_register_io_region(&s->dev, 4, 0x20,
PCI_ADDRESS_SPACE_IO, uhci_map);
+
+ register_savevm("uhci", 0, 1, uhci_save, uhci_load, s);
}
void usb_uhci_piix4_init(PCIBus *bus, int devfn)
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2008-08-21 19:33 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-08-21 19:33 [Qemu-devel] [5054] uhci: fixes for save/load-vm (Max Krasnyansky) Anthony Liguori
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.