aboutsummaryrefslogtreecommitdiff
path: root/hw/vfio
diff options
context:
space:
mode:
authorCorvin Köhne <corvin.koehne@gmail.com>2024-08-28 15:43:22 +0200
committerCédric Le Goater <clg@redhat.com>2024-09-17 10:37:55 +0200
commite433f208973ffee4ca9159ebc7c8f6ab520358fa (patch)
treefad1a417c2e16a5a8efb6872f080463a0a2aa01a /hw/vfio
parent4bd683d6f19dfe05a628af5deca2009e2a1783bf (diff)
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>
Diffstat (limited to 'hw/vfio')
-rw-r--r--hw/vfio/igd.c6
1 files changed, 5 insertions, 1 deletions
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 {