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
		
	
	
		
			1013 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			1013 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 */
 |