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 this code, and replace it: - Modern QEMU doesn't need VIRTIO_PCI_FLAG_BUS_MASTER_BUG so just drop it for latest machine type. - For compat machine types, set PCI_COMMAND if DRIVER_OK is set. As this is needed for 2.1 for both pc and ppc, move PC_COMPAT macros from pc.h to a new common header. Cc: Greg Kurz <gkurz@linux.vnet.ibm.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Alexander Graf <agraf@suse.de>
36 lines
1,013 B
C
36 lines
1,013 B
C
#ifndef HW_COMPAT_H
|
|
#define HW_COMPAT_H
|
|
|
|
#define HW_COMPAT_2_1 \
|
|
{\
|
|
.driver = "intel-hda",\
|
|
.property = "old_msi_addr",\
|
|
.value = "on",\
|
|
},{\
|
|
.driver = "VGA",\
|
|
.property = "qemu-extended-regs",\
|
|
.value = "off",\
|
|
},{\
|
|
.driver = "secondary-vga",\
|
|
.property = "qemu-extended-regs",\
|
|
.value = "off",\
|
|
},{\
|
|
.driver = "virtio-scsi-pci",\
|
|
.property = "any_layout",\
|
|
.value = "off",\
|
|
},{\
|
|
.driver = "usb-mouse",\
|
|
.property = "usb_version",\
|
|
.value = stringify(1),\
|
|
},{\
|
|
.driver = "usb-kbd",\
|
|
.property = "usb_version",\
|
|
.value = stringify(1),\
|
|
},{\
|
|
.driver = "virtio-pci",\
|
|
.property = "virtio-pci-bus-master-bug-migration",\
|
|
.value = "on",\
|
|
}
|
|
|
|
#endif /* HW_COMPAT_H */
|