vfio: Improve error reporting when MMIO region mapping fails
authorCédric Le Goater <clg@redhat.com>
Thu, 6 Feb 2025 13:14:33 +0000 (14:14 +0100)
committerCédric Le Goater <clg@redhat.com>
Tue, 11 Feb 2025 13:15:19 +0000 (14:15 +0100)
commitaaec00422ba6538ca3e6bfa612bbae155ec15c84
treeda9e61faf2709e64e958a70fe1dd84a60ff0875a
parent80936cf7f38e55f41bf5b482ee04f055c76a0df0
vfio: Improve error reporting when MMIO region mapping fails

When the IOMMU address space width is smaller than the physical
address width, a MMIO region of a device can fail to map because the
region is outside the supported IOVA ranges of the VM. In this case,
PCI peer-to-peer transactions on BARs are not supported. This can
occur with the 39-bit IOMMU address space width, as can be the case on
some Intel consumer processors, or when using a vIOMMU device with
default settings.

The current error message is unclear, improve it and also change the
error report to a warning because it is a non fatal condition for the
VM. To prevent excessive log messages, restrict these recurring DMA
mapping errors to a single warning at runtime.

Reviewed-by: Alex Williamson <alex.williamson@redhat.com>
Link: https://lore.kernel.org/qemu-devel/20250206131438.1505542-6-clg@redhat.com
Signed-off-by: Cédric Le Goater <clg@redhat.com>
hw/vfio/common.c