aboutsummaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
authorCorvin Köhne <c.koehne@beckhoff.com>2024-11-08 13:49:04 +0100
committerCédric Le Goater <clg@redhat.com>2024-11-18 08:40:06 +0100
commit66650fd0cc67e11f84521a114a7cbc8a8a5033ff (patch)
treeee217515d0b66f3a3dcfedd0c74b92a6c17ab8fd /hw
parentaff0c39c5bb5b45ebbf8f857cf8f546d4565f1bb (diff)
vfio/igd: fix calculation of graphics stolen memory
When copying the calculation of the stolen memory size for Intels integrated graphics device of gen 9 and later from the Linux kernel [1], we missed subtracting 0xf0 from the graphics mode select value for values above 0xf0. This leads to QEMU reporting a very large size of the graphics stolen memory area. That's just a waste of memory. Additionally the guest firmware might be unable to allocate such a large buffer. [1] https://github.com/torvalds/linux/blob/7c626ce4bae1ac14f60076d00eafe71af30450ba/arch/x86/kernel/early-quirks.c#L455-L460 Signed-off-by: Corvin Köhne <c.koehne@beckhoff.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Fixes: 871922416683 ("vfio/igd: correctly calculate stolen memory size for gen 9 and later") Reviewed-by: Alex Williamson <alex.williamson@redhat.com> [ clg: Changed commit subject ] Signed-off-by: Cédric Le Goater <clg@redhat.com>
Diffstat (limited to 'hw')
-rw-r--r--hw/vfio/igd.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/hw/vfio/igd.c b/hw/vfio/igd.c
index c5282827ec..4047f4f071 100644
--- a/hw/vfio/igd.c
+++ b/hw/vfio/igd.c
@@ -501,7 +501,7 @@ static int igd_get_stolen_mb(int gen, uint32_t gmch)
if (gms < 0xf0)
return gms * 32;
else
- return gms * 4 + 4;
+ return (gms - 0xf0) * 4 + 4;
}
}