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)