Re: [PATCH 07/12] drm/panic: Retry in dispatch function if panic output fails

Thomas Zimmermann <[email protected]>
Newsgroups org.kernel.vger.linux-hyperv,dev.linux.lists.imx,dev.linux.lists.sashiko-reviews,org.freedesktop.lists.dri-devel,org.freedesktop.lists.intel-gfx,org.freedesktop.lists.intel-xe
Message-ID <[email protected]>

Am 18.08.26 um 15:05 schrieb [email protected]:
> Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
> - [Medium] Removing the internal fallback from `draw_panic_screen_qr_code` breaks the `drm_panic` KUnit tests.

I think that's exactly the right thing to do. When we unit-test 
draw_panic_screen_qr_code() , we better not fallback silently to 
something that works; thus masking the error.
> --
>
> --- Patch [7]: [PATCH 07/12] drm/panic: Retry in dispatch function if panic output fails ---
> commit 23392eb57457ad383d9c4741f6fc2f3c107aabb3
> Author: Thomas Zimmermann <[email protected]>
>
> drm/panic: Retry in dispatch function if panic output fails
>
> On failed output of QR codes and kmsg buffers, fall back to a user
> message. QR-code output already did this internally, but now formally
> support it in drm_panic_dispatch(). Streamlines the existing logic.
>
>> --- a/drivers/gpu/drm/drm_panic.c
>> +++ b/drivers/gpu/drm/drm_panic.c
> [ ... ]
>> @@ -816,15 +816,6 @@ static int _draw_panic_screen_qr_code(struct drm_scanout_buffer *sb,
>>   	drm_panic_blit(sb, &r_qr, qr_image, qr_pitch, scale, fg_color);
>>   	return 0;
>>   }
>> -
>> -static int draw_panic_screen_qr_code(struct drm_scanout_buffer *sb,
>> -				     u32 fg_color, u32 bg_color,
>> -				     unsigned int qr_version)
>> -{
>> -	if (_draw_panic_screen_qr_code(sb, fg_color, bg_color, qr_version))
>> -		draw_panic_screen_user(sb, fg_color, bg_color);
>> -	return 0;
>> -}
> [Severity: Medium]
> Does removing this fallback cause the drm_panic KUnit tests to fail?
>
> Looking at the test suite in drivers/gpu/drm/tests/drm_panic_test.c, it
> calls this function directly without going through the new dispatch logic:
>
> static int draw_panic_screen_qr_code_default(struct drm_scanout_buffer *sb)
> {
> 	return draw_panic_screen_qr_code(sb, 0x00ffffff, 0x00000000, 40);
> }
>
> When tested with a small resolution like 300x200, the scale evaluates to 0
> and returns -ENOSPC. Previously, this wrapper caught the error, fell back
> to draw_panic_screen_user, and safely returned 0, satisfying the KUnit
> check.
>
> Since the fallback was moved to draw_panic_dispatch and the test calls
> the lower-level function directly, will this now propagate the -ENOSPC
> error and spuriously fail the test?
>

-- 
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstr. 146, 90461 Nürnberg, Germany, www.suse.com
GF: Jochen Jaser, Andrew McDonald, (HRB 36809, AG Nürnberg)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.