mirror of
https://github.com/qemu/qemu.git
synced 2025-08-05 02:04:04 +00:00

We changed link status register in pci express endpoint capability over time. Specifically, commitb2101eae63
("pcie: Set the "link active" in the link status register") set data link layer link active bit in this register without adding compatibility to old machine types. When migrating from qemu 2.3 and older this affects xhci devices which under machine type 2.0 and older have a pci express endpoint capability even if they are on a pci bus. Add compatibility flags to make this bit value match what it was under 2.3. Additionally, to avoid breaking migration from qemu 2.3 and up, suppress checking link status during migration: this seems sane since hardware can change link status at any time. https://bugzilla.redhat.com/show_bug.cgi?id=1352860 Reported-by: Gerd Hoffmann <kraxel@redhat.com> Fixes:b2101eae63
("pcie: Set the "link active" in the link status register") Cc: qemu-stable@nongnu.org Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
124 lines
3.0 KiB
C
124 lines
3.0 KiB
C
#ifndef HW_COMPAT_H
|
|
#define HW_COMPAT_H
|
|
|
|
#define HW_COMPAT_2_6 \
|
|
{\
|
|
.driver = "virtio-mmio",\
|
|
.property = "format_transport_address",\
|
|
.value = "off",\
|
|
},
|
|
|
|
#define HW_COMPAT_2_5 \
|
|
{\
|
|
.driver = "isa-fdc",\
|
|
.property = "fallback",\
|
|
.value = "144",\
|
|
},{\
|
|
.driver = "pvscsi",\
|
|
.property = "x-old-pci-configuration",\
|
|
.value = "on",\
|
|
},{\
|
|
.driver = "pvscsi",\
|
|
.property = "x-disable-pcie",\
|
|
.value = "on",\
|
|
},\
|
|
{\
|
|
.driver = "vmxnet3",\
|
|
.property = "x-old-msi-offsets",\
|
|
.value = "on",\
|
|
},{\
|
|
.driver = "vmxnet3",\
|
|
.property = "x-disable-pcie",\
|
|
.value = "on",\
|
|
},
|
|
|
|
#define HW_COMPAT_2_4 \
|
|
{\
|
|
.driver = "virtio-blk-device",\
|
|
.property = "scsi",\
|
|
.value = "true",\
|
|
},{\
|
|
.driver = "e1000",\
|
|
.property = "extra_mac_registers",\
|
|
.value = "off",\
|
|
},{\
|
|
.driver = "virtio-pci",\
|
|
.property = "x-disable-pcie",\
|
|
.value = "on",\
|
|
},{\
|
|
.driver = "virtio-pci",\
|
|
.property = "migrate-extra",\
|
|
.value = "off",\
|
|
},{\
|
|
.driver = "fw_cfg_mem",\
|
|
.property = "dma_enabled",\
|
|
.value = "off",\
|
|
},{\
|
|
.driver = "fw_cfg_io",\
|
|
.property = "dma_enabled",\
|
|
.value = "off",\
|
|
},
|
|
|
|
#define HW_COMPAT_2_3 \
|
|
{\
|
|
.driver = "virtio-blk-pci",\
|
|
.property = "any_layout",\
|
|
.value = "off",\
|
|
},{\
|
|
.driver = "virtio-balloon-pci",\
|
|
.property = "any_layout",\
|
|
.value = "off",\
|
|
},{\
|
|
.driver = "virtio-serial-pci",\
|
|
.property = "any_layout",\
|
|
.value = "off",\
|
|
},{\
|
|
.driver = "virtio-9p-pci",\
|
|
.property = "any_layout",\
|
|
.value = "off",\
|
|
},{\
|
|
.driver = "virtio-rng-pci",\
|
|
.property = "any_layout",\
|
|
.value = "off",\
|
|
},{\
|
|
.driver = TYPE_PCI_DEVICE,\
|
|
.property = "x-pcie-lnksta-dllla",\
|
|
.value = "off",\
|
|
},
|
|
|
|
#define HW_COMPAT_2_2 \
|
|
/* empty */
|
|
|
|
#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 */
|