* [PATCH] drm/mali-dp: Fix runtime PM leak in malidp_crtc_atomic_enable()
@ 2026-09-16 10:21 Wentao Liang
2026-09-16 12:47 ` Liviu Dudau
0 siblings, 1 reply; 2+ messages in thread
From: Wentao Liang @ 2026-09-16 10:21 UTC (permalink / raw)
To: airlied
Cc: dri-devel, linux-kernel, liviu.dudau, maarten.lankhorst, mripard,
simona, tzimmermann, Wentao Liang, stable
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@vger.kernel.org
Signed-off-by: Wentao Liang <vulab@iscas.ac.cn>
---
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
^ permalink raw reply [flat|nested] 2+ messages in thread* Re: [PATCH] drm/mali-dp: Fix runtime PM leak in malidp_crtc_atomic_enable()
2026-09-16 10:21 [PATCH] drm/mali-dp: Fix runtime PM leak in malidp_crtc_atomic_enable() Wentao Liang
@ 2026-09-16 12:47 ` Liviu Dudau
0 siblings, 0 replies; 2+ messages in thread
From: Liviu Dudau @ 2026-09-16 12:47 UTC (permalink / raw)
To: Wentao Liang
Cc: airlied, dri-devel, linux-kernel, maarten.lankhorst, mripard,
simona, tzimmermann, stable
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@vger.kernel.org
> Signed-off-by: Wentao Liang <vulab@iscas.ac.cn>
Acked-by: Liviu Dudau <liviu.dudau@arm.com>
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! /
---------------
¯\_(ツ)_/¯
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-09-16 12:47 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-16 10:21 [PATCH] drm/mali-dp: Fix runtime PM leak in malidp_crtc_atomic_enable() Wentao Liang
2026-09-16 12:47 ` Liviu Dudau
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®