summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorJocelyn Falempe <jfalempe@redhat.com>2025-10-09 14:24:48 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-10-29 14:08:59 +0100
commit9630c168a9dc31b6128871d62f22c1abb56eedc6 (patch)
treeed3d4e00857f1fa8a75226b69b1bfa91de03fecb /drivers
parent924335412db8907805cec8949c3433239ad508df (diff)
downloadlinux-9630c168a9dc31b6128871d62f22c1abb56eedc6.tar.gz
linux-9630c168a9dc31b6128871d62f22c1abb56eedc6.tar.bz2
linux-9630c168a9dc31b6128871d62f22c1abb56eedc6.zip
drm/panic: Fix drawing the logo on a small narrow screen
[ Upstream commit 179753aa5b7890b311968c033d08f558f0a7be21 ] If the logo width is bigger than the framebuffer width, and the height is big enough to hold the logo and the message, it will draw at x coordinate that are higher than the width, and ends up in a corrupted image. Fixes: 4b570ac2eb54 ("drm/rect: Add drm_rect_overlap()") Reviewed-by: Javier Martinez Canillas <javierm@redhat.com> Link: https://lore.kernel.org/r/20251009122955.562888-2-jfalempe@redhat.com Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/drm_panic.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/gpu/drm/drm_panic.c b/drivers/gpu/drm/drm_panic.c
index f128d345b16d..932a54b67479 100644
--- a/drivers/gpu/drm/drm_panic.c
+++ b/drivers/gpu/drm/drm_panic.c
@@ -306,6 +306,9 @@ static void drm_panic_logo_rect(struct drm_rect *rect, const struct font_desc *f
static void drm_panic_logo_draw(struct drm_scanout_buffer *sb, struct drm_rect *rect,
const struct font_desc *font, u32 fg_color)
{
+ if (rect->x2 > sb->width || rect->y2 > sb->height)
+ return;
+
if (logo_mono)
drm_panic_blit(sb, rect, logo_mono->data,
DIV_ROUND_UP(drm_rect_width(rect), 8), 1, fg_color);