From fbe42fd8cf4a37e5720ecedc0979a70b4944e675 Mon Sep 17 00:00:00 2001 From: Thomas Zimmermann Date: Fri, 11 Sep 2026 14:44:00 +0200 Subject: [PATCH] drm/panic: Return from screen_user if display is too small Return an error if the display is too small to display at least a single character. If the panic handler cannot display any message it does at least not destroy the current output, which might help with identifying the problem. v4: - also check font height against scanout buffer (Jocelyn) Signed-off-by: Thomas Zimmermann Reviewed-by: Jocelyn Falempe Link: https://patch.msgid.link/20260911124540.279841-8-tzimmermann@suse.de --- drivers/gpu/drm/drm_panic.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/drm_panic.c b/drivers/gpu/drm/drm_panic.c index f597ef04c5bc..b1cd5e5865a0 100644 --- a/drivers/gpu/drm/drm_panic.c +++ b/drivers/gpu/drm/drm_panic.c @@ -486,7 +486,7 @@ static int draw_panic_screen_user(struct drm_scanout_buffer *sb, u32 fg_color, u struct drm_rect r_screen, r_logo, r_msg; unsigned int msg_width, msg_height; - if (!font) + if (!font || font->width > sb->width || font->height > sb->height) return -EINVAL; fg_color = drm_draw_color_from_xrgb8888(fg_color, sb->format->format); @@ -560,7 +560,7 @@ static int draw_panic_screen_kmsg(struct drm_scanout_buffer *sb, u32 fg_color, u struct drm_panic_line line; int yoffset; - if (!font || font->width > sb->width) + if (!font || font->width > sb->width || font->height > sb->height) return -EINVAL; fg_color = drm_draw_color_from_xrgb8888(fg_color, sb->format->format);