Restore SR-IOV Intel iGPU VF passthrough capability: Check x-igd-opregion=off parameter in vfio_pci_igd_config_quirk and vfio_pci_kvmgt_config_quirk to ensure x-igd-opregion=off is respected despite subsequent attempt of automatic IGD opregion detection.
Fixes: c0273e77f2d7 ("vfio/igd: Detect IGD device by OpRegion") Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2968 Signed-off-by: Edmund Raile <edmund.ra...@protonmail.com> --- This patch fixes a regression in QEMU’s VFIO IGD quirk handling that established automatic IGD opregion detection which ignores x-igd-opregion=off necessary for SR-IOV VF passthrough of Intel iGPUs using i915-sriov-dkms. Please review and provide feedback. Let me know if additional testing or changes are needed. Kind regards, Edmund Raile. hw/vfio/igd.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/hw/vfio/igd.c b/hw/vfio/igd.c index e7952d15a0..e54a2a2f00 100644 --- a/hw/vfio/igd.c +++ b/hw/vfio/igd.c @@ -523,6 +523,11 @@ static bool vfio_pci_igd_config_quirk(VFIOPCIDevice *vdev, Error **errp) return true; } + /* Respect x-igd-opregion=off by skipping OpRegion handling */ + if (!vdev->igd_opregion) { + return true; + } + /* IGD device always comes with OpRegion */ if (!vfio_pci_igd_opregion_detect(vdev, &opregion, errp)) { return true; @@ -689,6 +694,11 @@ static bool vfio_pci_kvmgt_config_quirk(VFIOPCIDevice *vdev, Error **errp) return true; } + /* Respect x-igd-opregion=off by skipping OpRegion handling */ + if (!vdev->igd_opregion) { + return true; + } + /* FIXME: Cherryview is Gen8, but don't support GVT-g */ gen = igd_gen(vdev); if (gen != 8 && gen != 9) { -- 2.49.0