qemu/hw
Michael S. Tsirkin 4d43d3f3c8 virtio-pci: fix migration for pci bus master
Current support for bus master (clearing OK bit)
together with the need to support guests which do not
enable PCI bus mastering, leads to extra state in
VIRTIO_PCI_FLAG_BUS_MASTER_BUG bit, which isn't robust
in case of cross-version migration for the case when
guests use the device before setting DRIVER_OK.

Rip out VIRTIO_PCI_FLAG_BUS_MASTER_BUG and implement a simpler
work-around: treat clearing of PCI_COMMAND as a virtio reset.  Old
guests never touch this bit so they will work.

As reset clears device status, DRIVER and MASTER bits are
now in sync, so we can fix up cross-version migration simply
by synchronising them, without need to detect a buggy guest
explicitly.

Drop tracking VIRTIO_PCI_FLAG_BUS_MASTER_BUG completely.

As reset makes the device quiescent, in the future we'll be able to drop
checking OK bit in a bunch of places.

Cc: Jason Wang <jasowang@redhat.com>
Cc: Greg Kurz <gkurz@linux.vnet.ibm.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2014-09-18 21:51:24 +03:00
..
9pfs hw/9pfs: Don't return type from host in readdir on local 9p filesystem 2014-09-04 10:51:13 -05:00
acpi pcihp: fix possible array out of bounds 2014-08-25 00:16:06 +02:00
alpha iommu: add is_write as a parameter to the translate function of MemoryRegionIOMMUOps 2014-08-28 23:10:22 +02:00
arm hw/arm/boot: enable DTB support when booting ELF images 2014-09-12 14:06:50 +01:00
audio SCSI changes that enable sending vendor-specific commands via virtio-scsi. 2014-08-19 13:00:57 +01:00
block pflash_cfi01: write flash contents to bdrv on incoming migration 2014-09-08 11:12:43 +01:00
bt l2cap: fix access to freed memory 2014-08-15 19:12:48 +04:00
char SCSI changes that enable sending vendor-specific commands via virtio-scsi. 2014-08-19 13:00:57 +01:00
core qdev: Move global validation to a single function 2014-09-18 21:51:24 +03:00
cpu icc_bus: QOM'ify ICC 2013-12-24 18:02:18 +01:00
cris machine: Conversion of QEMUMachineInitArgs to MachineState 2014-05-28 17:35:01 +02:00
display console: pixman switchover continued, add some infrastructure to make it 2014-09-11 11:44:17 +01:00
dma dma: axidma: Variablise repeated s->streams[i] sub-expr 2014-08-24 13:16:32 +04:00
gpio pl061: implement input interrupt logic 2014-09-12 14:06:48 +01:00
i2c Fix debug print warning 2014-09-02 22:38:16 +04:00
i386 trivial patches for 2014-09-03 2014-09-04 13:33:53 +01:00
ide ide: Add resize callback to ide/core 2014-09-08 11:12:44 +01:00
input Fix debug print warning 2014-09-02 22:38:16 +04:00
intc Fix debug print warning 2014-09-02 22:38:16 +04:00
ipack memory: remove memory_region_destroy 2014-08-18 12:06:21 +02:00
isa Fix debug print warning 2014-09-02 22:38:16 +04:00
lm32 machine: Conversion of QEMUMachineInitArgs to MachineState 2014-05-28 17:35:01 +02:00
m68k machine: Conversion of QEMUMachineInitArgs to MachineState 2014-05-28 17:35:01 +02:00
mem pc-dimm: fix up error message 2014-08-14 13:22:00 +02:00
microblaze microblaze: ml605: Get rid of ddr_base variable 2014-08-24 13:16:32 +04:00
mips memory: convert memory_region_destroy to object_unparent 2014-08-18 12:06:20 +02:00
misc PPC: Cuda: Use cuda timer to expose tbfreq to guest 2014-09-08 12:50:52 +02:00
moxie hw/moxie/moxiesim.c: Remove unused moxie_intc_create() 2014-06-24 20:01:24 +04:00
net vhost-user: fix VIRTIO_NET_F_MRG_RXBUF negotiation 2014-09-18 21:51:24 +03:00
nvram PPC: mac_nvram: Split NVRAM into OF and OSX parts 2014-09-08 12:50:52 +02:00
openrisc machine: Conversion of QEMUMachineInitArgs to MachineState 2014-05-28 17:35:01 +02:00
pci pci: avoid losing config updates to MSI/MSIX cap regs 2014-09-02 17:28:26 +03:00
pci-bridge ioh3420: remove unused ioh3420_init() declaration 2014-09-02 17:28:26 +03:00
pci-host apb: implement PCI bus error interrupt map registers 2014-09-09 06:07:12 +01:00
pcmcia hw: Fix qemu_allocate_irqs() leaks 2014-06-30 21:13:30 +02:00
ppc Patch queue for ppc - 2014-09-08 2014-09-08 12:02:07 +01:00
s390x sclp-s390: Add memory hotplug SCLPs 2014-09-01 09:25:32 +02:00
scsi pci, pc fixes, features 2014-09-04 12:20:41 +01:00
sd sd: sdhci: Fix ADMA dma_memory_read access 2014-08-04 14:41:54 +01:00
sh4 hw: Fix qemu_allocate_irqs() leaks 2014-06-30 21:13:30 +02:00
sparc tcx: move initialisation from realizefn to initfn 2014-06-05 20:51:57 +01:00
sparc64 sun4u: switch second PCI-ebus bridge BAR over to PCI IO space 2014-08-17 13:12:52 +01:00
ssi ssi: xilinx_spi: Initialise CS GPIOs as NULL 2014-08-15 18:54:40 +04:00
timer Fix debug print warning 2014-09-02 22:38:16 +04:00
tpm Add ACPI tables for TPM 2014-08-25 00:16:06 +02:00
tricore target-tricore: Add board for systemmode 2014-09-01 14:49:20 +01:00
unicore32 machine: Conversion of QEMUMachineInitArgs to MachineState 2014-05-28 17:35:01 +02:00
usb xhci PCIe endpoint migration compatibility fix 2014-09-10 07:20:53 +02:00
virtio virtio-pci: fix migration for pci bus master 2014-09-18 21:51:24 +03:00
watchdog memory: remove memory_region_destroy 2014-08-18 12:06:21 +02:00
xen memory: remove memory_region_destroy 2014-08-18 12:06:21 +02:00
xenpv machine: Conversion of QEMUMachineInitArgs to MachineState 2014-05-28 17:35:01 +02:00
xtensa hw/xtensa/xtfpga: implement initrd loading 2014-06-29 02:32:42 +04:00
Makefile.objs pc: implement pc-dimm device abstraction 2014-06-19 16:41:47 +03:00