[PATCH] drm/xe/display: check for error on drmm_mutex_init
Lucas De Marchi
lucas.demarchi at intel.com
Wed Mar 20 00:35:31 UTC 2024
On Tue, Mar 19, 2024 at 08:33:41AM +0530, Arun R Murthy wrote:
>Check return value for drmm_mutex_init as it can fail and return on
>failure.
>
>Signed-off-by: Arun R Murthy <arun.r.murthy at intel.com>
>---
> drivers/gpu/drm/xe/display/xe_display.c | 24 ++++++++++++++++++------
> 1 file changed, 18 insertions(+), 6 deletions(-)
>
>diff --git a/drivers/gpu/drm/xe/display/xe_display.c b/drivers/gpu/drm/xe/display/xe_display.c
>index e4db069f0db3..c59fa832758d 100644
>--- a/drivers/gpu/drm/xe/display/xe_display.c
>+++ b/drivers/gpu/drm/xe/display/xe_display.c
>@@ -107,12 +107,24 @@ int xe_display_create(struct xe_device *xe)
>
> xe->display.hotplug.dp_wq = alloc_ordered_workqueue("xe-dp", 0);
>
>- drmm_mutex_init(&xe->drm, &xe->sb_lock);
>- drmm_mutex_init(&xe->drm, &xe->display.backlight.lock);
>- drmm_mutex_init(&xe->drm, &xe->display.audio.mutex);
>- drmm_mutex_init(&xe->drm, &xe->display.wm.wm_mutex);
>- drmm_mutex_init(&xe->drm, &xe->display.pps.mutex);
>- drmm_mutex_init(&xe->drm, &xe->display.hdcp.hdcp_mutex);
>+ err = drmm_mutex_init(&xe->drm, &xe->sb_lock);
>+ if (err)
>+ return err;
>+ err = drmm_mutex_init(&xe->drm, &xe->display.backlight.lock);
>+ if (err)
>+ return err;
>+ err = drmm_mutex_init(&xe->drm, &xe->display.audio.mutex);
>+ if (err)
>+ return err;
>+ err = drmm_mutex_init(&xe->drm, &xe->display.wm.wm_mutex);
>+ if (err)
>+ return err;
>+ err = drmm_mutex_init(&xe->drm, &xe->display.pps.mutex);
>+ if (err)
>+ return err;
>+ err = drmm_mutex_init(&xe->drm, &xe->display.hdcp.hdcp_mutex);
>+ if (err)
>+ return err;
humn... but not very pretty. What about?
if ((err = drmm_mutex_init(&xe->drm, &xe->sb_lock)) ||
(err = drmm_mutex_init(&xe->drm, &xe->display.backlight.lock)) ||
(err = ...))
return err;
I think there are few places in life for assignment + check in single
statement, but IMO this is one of them where the alternative is uglier
and more error prone.
thoughts?
Lucas De Marchi
> xe->enabled_irq_mask = ~0;
>
> err = drmm_add_action_or_reset(&xe->drm, display_destroy, NULL);
>--
>2.25.1
>
More information about the Intel-gfx
mailing list