Commit e433f20897 for qemu.org

commit e433f208973ffee4ca9159ebc7c8f6ab520358fa
Author: Corvin Köhne <corvin.koehne@gmail.com>
Date:   Wed Aug 28 15:43:22 2024 +0200

    vfio/igd: return an invalid generation for unknown devices

    Intel changes it's specification quite often e.g. the location and size
    of the BDSM register has change for gen 11 devices and later. This
    causes our emulation to fail on those devices. So, it's impossible for
    us to use a suitable default value for unknown devices. Instead of
    returning a random generation value and hoping that everthing works
    fine, we should verify that different devices are working and add them
    to our list of known devices.

    Signed-off-by: Corvin Köhne <c.koehne@beckhoff.com>
    Reviewed-by: Alex Williamson <alex.williamson@redhat.com>

diff --git a/hw/vfio/igd.c b/hw/vfio/igd.c
index d320d032a7..650a323dda 100644
--- a/hw/vfio/igd.c
+++ b/hw/vfio/igd.c
@@ -90,7 +90,11 @@ static int igd_gen(VFIOPCIDevice *vdev)
         return 8;
     }

-    return 8; /* Assume newer is compatible */
+    /*
+     * Unfortunately, Intel changes it's specification quite often. This makes
+     * it impossible to use a suitable default value for unknown devices.
+     */
+    return -1;
 }

 typedef struct VFIOIGDQuirk {