linux/drivers/vfio/pci
Kevin Tian a9040eac43 vfio/pci: Disable qword access to the PCI ROM bar
[ Upstream commit dc85a46928 ]

Commit 2b938e3db3 ("vfio/pci: Enable iowrite64 and ioread64 for vfio
pci") enables qword access to the PCI bar resources. However certain
devices (e.g. Intel X710) are observed with problem upon qword accesses
to the rom bar, e.g. triggering PCI aer errors.

This is triggered by Qemu which caches the rom content by simply does a
pread() of the remaining size until it gets the full contents. The other
bars would only perform operations at the same access width as their
guest drivers.

Instead of trying to identify all broken devices, universally disable
qword access to the rom bar i.e. going back to the old way which worked
reliably for years.

Reported-by: Farrah Chen <farrah.chen@intel.com>
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=220740
Fixes: 2b938e3db3 ("vfio/pci: Enable iowrite64 and ioread64 for vfio pci")
Cc: stable@vger.kernel.org
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
Tested-by: Farrah Chen <farrah.chen@intel.com>
Link: https://lore.kernel.org/r/20251218081650.555015-2-kevin.tian@intel.com
Signed-off-by: Alex Williamson <alex@shazbot.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2026-01-08 10:17:21 +01:00
..
hisilicon hisi_acc_vfio_pci: Add .match_token_uuid callback in hisi_acc_vfio_pci_migrn_ops 2026-01-08 10:16:56 +01:00
mlx5 vfio/pci: Do vf_token checks for VFIO_DEVICE_BIND_IOMMUFD 2025-08-05 15:41:14 -06:00
nvgrace-gpu vfio/pci: Disable qword access to the PCI ROM bar 2026-01-08 10:17:21 +01:00
pds vfio/pds: Fix memory leak in pds_vfio_dirty_enable() 2026-01-08 10:16:48 +01:00
qat vfio/qat: add support for intel QAT 6xxx virtual functions 2025-08-05 15:41:18 -06:00
virtio vfio/pci: drop nth_page() usage within SG entry 2025-09-21 14:22:08 -07:00
Kconfig PCI: Add CONFIG_MMU dependency 2025-04-23 15:40:30 -05:00
Makefile vfio/qat: Add vfio_pci driver for Intel QAT SR-IOV VF devices 2024-04-29 13:25:41 -06:00
trace.h vfio/pci: Cleanup license mess 2019-01-22 11:06:05 -07:00
vfio_pci.c vfio/pci: Do vf_token checks for VFIO_DEVICE_BIND_IOMMUFD 2025-08-05 15:41:14 -06:00
vfio_pci_config.c vfio/pci: Virtualize zero INTx PIN if no pdev->irq 2025-04-14 08:31:45 -06:00
vfio_pci_core.c vfio/pci: Use RCU for error/request triggers to avoid circular locking 2025-12-18 14:03:27 +01:00
vfio_pci_igd.c vfio/pci: Use pci_is_display() 2025-07-17 15:30:13 -05:00
vfio_pci_intrs.c vfio/pci: Use RCU for error/request triggers to avoid circular locking 2025-12-18 14:03:27 +01:00
vfio_pci_priv.h vfio/pci: Use RCU for error/request triggers to avoid circular locking 2025-12-18 14:03:27 +01:00
vfio_pci_rdwr.c vfio/pci: Disable qword access to the PCI ROM bar 2026-01-08 10:17:21 +01:00
vfio_pci_zdev.c Merge remote-tracking branch 'mlx5/mlx5-vfio' into v6.1/vfio/next 2022-09-08 10:44:34 -06:00