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



Reply via email to