aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomita Moeko <tomitamoeko@gmail.com>2024-12-06 20:27:39 +0800
committerCédric Le Goater <clg@redhat.com>2024-12-26 07:23:37 +0100
commit03828b00a2bfa14fb70a423b811b57d463842622 (patch)
treedcc721b8a86e0d505a42af48525831d638a30b71
parenta7f77545d401266a6415e6e03c7738c95314f0e6 (diff)
downloadqemu-03828b00a2bfa14fb70a423b811b57d463842622.zip
qemu-03828b00a2bfa14fb70a423b811b57d463842622.tar.gz
qemu-03828b00a2bfa14fb70a423b811b57d463842622.tar.bz2
vfio/igd: fix GTT stolen memory size calculation for gen 8+
On gen 8 and later devices, the GTT stolen memory size when GGMS equals 0 is 0 (no preallocated memory) rather than 1MB [1]. [1] 3.1.13, 5th Generation Intel Core Processor Family Datasheet Vol. 2 https://www.intel.com/content/www/us/en/content-details/330835 Fixes: c4c45e943e51 ("vfio/pci: Intel graphics legacy mode assignment") Reported-By: Alex Williamson <alex.williamson@redhat.com> Signed-off-by: Tomita Moeko <tomitamoeko@gmail.com> Reviewed-by: Alex Williamson <alex.williamson@redhat.com> Link: https://lore.kernel.org/r/20241206122749.9893-2-tomitamoeko@gmail.com Signed-off-by: Cédric Le Goater <clg@redhat.com>
-rw-r--r--hw/vfio/igd.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/hw/vfio/igd.c b/hw/vfio/igd.c
index 4047f4f..73ed1ec 100644
--- a/hw/vfio/igd.c
+++ b/hw/vfio/igd.c
@@ -268,7 +268,7 @@ static int vfio_igd_gtt_max(VFIOPCIDevice *vdev)
gmch = vfio_pci_read_config(&vdev->pdev, IGD_GMCH, sizeof(gmch));
ggms = (gmch >> (gen < 8 ? 8 : 6)) & 0x3;
- if (gen > 6) {
+ if (gen > 6 && ggms != 0) {
ggms = 1 << ggms;
}
@@ -678,7 +678,7 @@ void vfio_probe_igd_bar4_quirk(VFIOPCIDevice *vdev, int nr)
/* Determine the size of stolen memory needed for GTT */
ggms_mb = (gmch >> (gen < 8 ? 8 : 6)) & 0x3;
- if (gen > 6) {
+ if (gen > 6 && ggms_mb != 0) {
ggms_mb = 1 << ggms_mb;
}