mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 17:13:52 +02:00
Merge tag 'drm-intel-next-fixes-2026-01-29' of https://gitlab.freedesktop.org/drm/i915/kernel into drm-next
- Prevent u64 underflow in intel_fbc_stolen_end Signed-off-by: Dave Airlie <airlied@redhat.com> From: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> Link: https://patch.msgid.link/aXsWGWjacEJ03rTs@jlahtine-mobl
This commit is contained in:
commit
608fb0a78c
|
|
@ -809,19 +809,32 @@ static u64 intel_fbc_cfb_base_max(struct intel_display *display)
|
|||
|
||||
static u64 intel_fbc_stolen_end(struct intel_display *display)
|
||||
{
|
||||
u64 end;
|
||||
u64 end = intel_fbc_cfb_base_max(display);
|
||||
|
||||
/* The FBC hardware for BDW/SKL doesn't have access to the stolen
|
||||
/*
|
||||
* The FBC hardware for BDW/SKL doesn't have access to the stolen
|
||||
* reserved range size, so it always assumes the maximum (8mb) is used.
|
||||
* If we enable FBC using a CFB on that memory range we'll get FIFO
|
||||
* underruns, even if that range is not reserved by the BIOS. */
|
||||
* underruns, even if that range is not reserved by the BIOS.
|
||||
*/
|
||||
if (display->platform.broadwell ||
|
||||
(DISPLAY_VER(display) == 9 && !display->platform.broxton))
|
||||
end = intel_parent_stolen_area_size(display) - 8 * 1024 * 1024;
|
||||
else
|
||||
end = U64_MAX;
|
||||
(DISPLAY_VER(display) == 9 && !display->platform.broxton)) {
|
||||
u64 stolen_area_size = intel_parent_stolen_area_size(display);
|
||||
|
||||
return min(end, intel_fbc_cfb_base_max(display));
|
||||
/*
|
||||
* If stolen_area_size is less than SZ_8M, use
|
||||
* intel_fbc_cfb_base_max instead. This should not happen,
|
||||
* so warn if it does.
|
||||
*/
|
||||
if (drm_WARN_ON(display->drm,
|
||||
check_sub_overflow(stolen_area_size,
|
||||
SZ_8M, &stolen_area_size)))
|
||||
return end;
|
||||
|
||||
return min(end, stolen_area_size);
|
||||
}
|
||||
|
||||
return end;
|
||||
}
|
||||
|
||||
static int intel_fbc_min_limit(const struct intel_plane_state *plane_state)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user