aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2012-11-08 15:54:05 +0100
committerGerd Hoffmann <kraxel@redhat.com>2012-11-16 11:27:05 +0100
commit4ea375bf37d655bbf1696239ebea8575956bb226 (patch)
tree0743602cd6fc5a58b9eade9fcf265fd18dc71143
parent6801038bc52d61f81ac8a25fbe392f1bad982887 (diff)
downloadqemu-4ea375bf37d655bbf1696239ebea8575956bb226.zip
qemu-4ea375bf37d655bbf1696239ebea8575956bb226.tar.gz
qemu-4ea375bf37d655bbf1696239ebea8575956bb226.tar.bz2
fix live migration
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>
-rw-r--r--hw/pci.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/hw/pci.c b/hw/pci.c
index dceda0b..9841e39 100644
--- 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;
}