vfio/igd: fix calculation of graphics stolen memory
authorCorvin Köhne <c.koehne@beckhoff.com>
Fri, 8 Nov 2024 12:49:04 +0000 (13:49 +0100)
committerCédric Le Goater <clg@redhat.com>
Mon, 18 Nov 2024 07:40:06 +0000 (08:40 +0100)
commit66650fd0cc67e11f84521a114a7cbc8a8a5033ff
treeee217515d0b66f3a3dcfedd0c74b92a6c17ab8fd
parentaff0c39c5bb5b45ebbf8f857cf8f546d4565f1bb
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>
hw/vfio/igd.c