fix live migration
authorGerd Hoffmann <kraxel@redhat.com>
Thu, 8 Nov 2012 14:54:05 +0000 (15:54 +0100)
committerGerd Hoffmann <kraxel@redhat.com>
Fri, 16 Nov 2012 10:27:05 +0000 (11:27 +0100)
Commit 1c380f9460522f32c8dd2577b2a53d518ec91c6d breaks live migration.
DMA stops working for ehci (and probably for any pci device) after
restoring the guest because the bus master region never gets enabled.
Add code doing that after loading the pci config space from vmstate.

Cc: Avi Kivity <avi@redhat.com>
Cc: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
hw/pci.c

index dceda0bdc5c41649e1d68bc638ca760248be46b4..9841e398a6a3380b18b9396d04275f311b5e726d 100644 (file)
--- a/hw/pci.c
+++ b/hw/pci.c
@@ -367,6 +367,10 @@ static int get_pci_config_device(QEMUFile *f, void *pv, size_t size)
 
     pci_update_mappings(s);
 
+    memory_region_set_enabled(&s->bus_master_enable_region,
+                              pci_get_word(s->config + PCI_COMMAND)
+                              & PCI_COMMAND_MASTER);
+
     g_free(config);
     return 0;
 }