The following changes since commit cf3e71d8fc8ba681266759bb6cb2e45a45983e3e:
Merge tag 'single-binary-20260112' of https://github.com/philmd/qemu into staging (2026-01-13 11:51:18 +1100) are available in the Git repository at: https://github.com/legoater/qemu/ tags/pull-vfio-20260113 for you to fetch changes up to 7a05be8c70bb789c23076b1ca2563ed7d87c6fb8: tests/rcutorture: Fix build error (2026-01-13 08:29:59 +0100) ---------------------------------------------------------------- vfio queue: * Resolves build errors with gcc 16 * Adjusts the Linux headers for s390x and mshv * Fixes endianness issue in the VFIO helper functions * Adds support for live migration with vIOMMU when using IOMMU dirty tracking * Implements a migration blocker to prevent failures when VM memory is too large * Corrects an unmap_bitmap failure in the legacy VFIO backend * Addresses a workaround for an Intel IOMMU errata. * Implements Intel IOMMU first stage translation for passthrough device. Also a prerequisite work for vSVA. * Updates documentation ---------------------------------------------------------------- Cédric Le Goater (6): include/hw/hyperv: Remove unused 'struct mshv_vp_registers' definition update-linux-headers: Remove "asm-s390/unistd_32.h" ppc/vof: Fix build error target/riscv: Fix build errors tests/qtest: Fix build error tests/rcutorture: Fix build error Farhan Ali (1): util/vfio-helper: Fix endianness in PCI config read/write functions Joao Martins (1): vfio: Add a backend_flag parameter to vfio_container_query_dirty_bitmap() Philippe Mathieu-Daudé (1): hw/vfio/migration: Check base architecture at runtime Yi Liu (3): intel_iommu_accel: Propagate PASID-based iotlb invalidation to host intel_iommu: Replay all pasid bindings when either SRTP or TE bit is changed intel_iommu: Replay pasid bindings after context cache invalidation Zhenzhong Duan (29): docs/devel: Remove stale comments related to iommufd dirty tracking intel_iommu: Rename vtd_ce_get_rid2pasid_entry to vtd_ce_get_pasid_entry intel_iommu: Delete RPS capability related supporting code intel_iommu: Update terminology to match VTD spec hw/pci: Export pci_device_get_iommu_bus_devfn() and return bool hw/pci: Introduce pci_device_get_viommu_flags() intel_iommu: Implement get_viommu_flags() callback intel_iommu: Introduce a new structure VTDHostIOMMUDevice vfio/iommufd: Force creating nesting parent HWPT intel_iommu_accel: Check for compatibility with IOMMUFD backed device when x-flts=on intel_iommu_accel: Fail passthrough device under PCI bridge if x-flts=on intel_iommu_accel: Stick to system MR for IOMMUFD backed host device when x-flts=on intel_iommu: Add some macros and inline functions intel_iommu_accel: Bind/unbind guest page table to host intel_iommu: Add migration support with x-flts=on intel_iommu: Enable host device when x-flts=on in scalable mode docs/devel: Add IOMMUFD nesting documentation vfio/iommufd: Add framework code to support getting dirty bitmap before unmap vfio/iommufd: Query dirty bitmap before DMA unmap vfio/container-legacy: rename vfio_dma_unmap_bitmap() to vfio_legacy_dma_unmap_get_dirty_bitmap() vfio/iommufd: Add IOMMU_HWPT_GET_DIRTY_BITMAP_NO_CLEAR flag support intel_iommu: Fix unmap_bitmap failure with legacy VFIO backend vfio/listener: Add missing dirty tracking in region_del vfio/migration: Add migration blocker if VM memory is too large to cause unmap_bitmap failure vfio/migration: Allow live migration with vIOMMU without VFs using device dirty tracking hw/pci: Introduce pci_device_get_host_iommu_quirks() intel_iommu_accel: Implement get_host_iommu_quirks() callback vfio/listener: Bypass readonly region for dirty tracking Workaround for ERRATA_772415_SPR17 MAINTAINERS | 2 + docs/devel/vfio-iommufd.rst | 38 ++- hw/i386/intel_iommu_accel.h | 56 ++++ hw/i386/intel_iommu_internal.h | 155 +++++++---- hw/vfio/vfio-helpers.h | 2 - include/hw/core/iommu.h | 30 ++ include/hw/hyperv/hvgdk_mini.h | 7 - include/hw/i386/intel_iommu.h | 6 +- include/hw/pci/pci.h | 55 ++++ include/hw/vfio/vfio-container.h | 9 +- include/hw/vfio/vfio-device.h | 15 + include/system/iommufd.h | 2 +- backends/iommufd.c | 5 +- hw/i386/intel_iommu.c | 572 +++++++++++++++++++++++---------------- hw/i386/intel_iommu_accel.c | 272 +++++++++++++++++++ hw/pci/pci.c | 35 ++- hw/ppc/vof.c | 5 +- hw/vfio-user/container.c | 5 +- hw/vfio/container-legacy.c | 15 +- hw/vfio/container.c | 20 +- hw/vfio/device.c | 32 +++ hw/vfio/helpers.c | 17 -- hw/vfio/iommufd.c | 71 ++++- hw/vfio/listener.c | 70 ++++- hw/vfio/migration-multifd.c | 12 +- hw/vfio/migration.c | 40 ++- target/riscv/cpu.c | 2 +- tests/qtest/intel-iommu-test.c | 4 +- tests/qtest/libqtest.c | 3 +- tests/unit/rcutorture.c | 2 +- util/vfio-helpers.c | 15 +- backends/trace-events | 2 +- hw/i386/Kconfig | 5 + hw/i386/meson.build | 1 + hw/i386/trace-events | 4 + hw/vfio/trace-events | 3 +- scripts/update-linux-headers.sh | 1 - 37 files changed, 1207 insertions(+), 383 deletions(-) create mode 100644 hw/i386/intel_iommu_accel.h create mode 100644 include/hw/core/iommu.h create mode 100644 hw/i386/intel_iommu_accel.c
