qemu-e2k/include/hw/pci
Leonardo Bras 5ed3dabe57 hw/pci: Disable PCI_ERR_UNCOR_MASK register for machine type < 8.0
Since it's implementation on v8.0.0-rc0, having the PCI_ERR_UNCOR_MASK
set for machine types < 8.0 will cause migration to fail if the target
QEMU version is < 8.0.0 :

qemu-system-x86_64: get_pci_config_device: Bad config data: i=0x10a read: 40 device: 0 cmask: ff wmask: 0 w1cmask:0
qemu-system-x86_64: Failed to load PCIDevice:config
qemu-system-x86_64: Failed to load e1000e:parent_obj
qemu-system-x86_64: error while loading state for instance 0x0 of device '0000:00:02.0/e1000e'
qemu-system-x86_64: load of migration failed: Invalid argument

The above test migrated a 7.2 machine type from QEMU master to QEMU 7.2.0,
with this cmdline:

./qemu-system-x86_64 -M pc-q35-7.2 [-incoming XXX]

In order to fix this, property x-pcie-err-unc-mask was introduced to
control when PCI_ERR_UNCOR_MASK is enabled. This property is enabled by
default, but is disabled if machine type <= 7.2.

Fixes: 010746ae1d ("hw/pci/aer: Implement PCI_ERR_UNCOR_MASK register")
Suggested-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Leonardo Bras <leobras@redhat.com>
Message-Id: <20230503002701.854329-1-leobras@redhat.com>
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Fixes: https://gitlab.com/qemu-project/qemu/-/issues/1576
Tested-by: Fiona Ebner <f.ebner@proxmox.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2023-05-19 10:30:46 -04:00
..
msi.h hw/xen: Support MSI mapping to PIRQ 2023-03-01 09:09:22 +00:00
msix.h msix: Assert that specified vector is in range 2022-11-07 14:08:17 -05:00
pci.h hw/pci: Disable PCI_ERR_UNCOR_MASK register for machine type < 8.0 2023-05-19 10:30:46 -04:00
pci_bridge.h hw/pci-bridge: Fix release ordering by embedding PCIBridgeWindows within PCIBridge 2023-05-16 09:14:18 +02:00
pci_bus.h intel-iommu: PASID support 2022-11-07 14:08:17 -05:00
pci_device.h include/hw/pci: Split pci_device.h off pci.h 2023-01-08 01:54:22 -05:00
pci_host.h hw/pci/pci_host: Allow PCI host to bypass iommu 2021-07-16 11:10:45 -04:00
pci_ids.h remove DEC 21154 PCI bridge 2022-12-21 07:32:24 -05:00
pci_regs.h pcie: Add 1.2 version token for the Power Management Capability 2022-03-06 05:08:23 -05:00
pcie.h pcie: drop unused PCIExpressIndicator 2023-03-02 03:10:49 -05:00
pcie_aer.h hw/pci/aer: Make PCIE AER error injection facility available for other emulation to use. 2023-03-07 12:39:00 -05:00
pcie_doe.h Don't include headers already included by qemu/osdep.h 2023-02-08 07:28:05 +01:00
pcie_host.h include/hw/pci/pcie_host: Correct PCIE_MMCFG_SIZE_MAX 2022-05-16 16:15:40 -04:00
pcie_port.h hw/pci: Add pcie_count_ds_port() and pcie_find_port_first() helpers 2023-03-07 19:51:07 -05:00
pcie_regs.h hw/pci/aer: Implement PCI_ERR_UNCOR_MASK register 2023-03-07 12:39:00 -05:00
pcie_sriov.h pcie: Introduce pcie_sriov_num_vfs 2023-03-10 15:35:38 +08:00
shpc.h include/hw/pci: Split pci_device.h off pci.h 2023-01-08 01:54:22 -05:00
slotid_cap.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00