Re: [PATCH] drm/mali-dp: Fix runtime PM leak in malidp_crtc_atomic_enable()

From: Liviu Dudau

Date: Wed Sep 16 2026 - 08:55:21 EST


On Wed, Sep 16, 2026 at 10:21:12AM +0000, Wentao Liang wrote:
> malidp_crtc_atomic_enable() resumes the device with
> pm_runtime_get_sync() and returns early when the resume fails. The
> runtime PM usage count is incremented by pm_runtime_get_sync() even
> when the resume fails, so returning without dropping the reference
> leaks it and, once the error has been hit, prevents the device from
> ever suspending again.
>
> Drop the runtime PM reference with pm_runtime_put_noidle() on the
> resume failure path before returning.
>
> Fixes: 85f6421889ec ("drm: mali-dp: Enable power management for the device.")
> Cc: stable@xxxxxxxxxxxxxxx
> Signed-off-by: Wentao Liang <vulab@xxxxxxxxxxx>

Acked-by: Liviu Dudau <liviu.dudau@xxxxxxx>

I will push the patch to drm-misc-fixes.

Best regards,
Liviu

> ---
> drivers/gpu/drm/arm/malidp_crtc.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/gpu/drm/arm/malidp_crtc.c b/drivers/gpu/drm/arm/malidp_crtc.c
> index 18e6157b1047..a2c6e536c55d 100644
> --- a/drivers/gpu/drm/arm/malidp_crtc.c
> +++ b/drivers/gpu/drm/arm/malidp_crtc.c
> @@ -56,6 +56,7 @@ static void malidp_crtc_atomic_enable(struct drm_crtc *crtc,
>
> if (err < 0) {
> DRM_DEBUG_DRIVER("Failed to enable runtime power management: %d\n", err);
> + pm_runtime_put_noidle(crtc->dev->dev);
> return;
> }
>
> --
> 2.34.1
>

--
====================
| I would like to |
| fix the world, |
| but they're not |
| giving me the |
\ source code! /
---------------
¯\_(ツ)_/¯