[PATCH] drm/panthor: Check debugfs GEM lock initialization

Linmao Li posted 1 patch 1 week, 5 days ago
drivers/gpu/drm/panthor/panthor_device.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
[PATCH] drm/panthor: Check debugfs GEM lock initialization
Posted by Linmao Li 1 week, 5 days ago
drmm_mutex_init() can fail while registering the managed cleanup action.
When that happens, drmm_add_action_or_reset() destroys the mutex before
returning the error. Continuing initialization would therefore leave the
debugfs GEM object list with an unusable lock.

Propagate the error as is already done for the other managed mutexes in
panthor_device_init().

Fixes: a3707f53eb3f ("drm/panthor: show device-wide list of DRM GEM objects over DebugFS")
Signed-off-by: Linmao Li <lilinmao@kylinos.cn>
---
 drivers/gpu/drm/panthor/panthor_device.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/panthor/panthor_device.c b/drivers/gpu/drm/panthor/panthor_device.c
index 0b25abebb803..9687c59de350 100644
--- a/drivers/gpu/drm/panthor/panthor_device.c
+++ b/drivers/gpu/drm/panthor/panthor_device.c
@@ -182,7 +182,10 @@ int panthor_device_init(struct panthor_device *ptdev)
 		return ret;
 
 #ifdef CONFIG_DEBUG_FS
-	drmm_mutex_init(&ptdev->base, &ptdev->gems.lock);
+	ret = drmm_mutex_init(&ptdev->base, &ptdev->gems.lock);
+	if (ret)
+		return ret;
+
 	INIT_LIST_HEAD(&ptdev->gems.node);
 #endif
 
-- 
2.25.1
Re: [PATCH] drm/panthor: Check debugfs GEM lock initialization
Posted by Adrián Larumbe 1 week, 3 days ago
Reviewed-by: Adrián Larumbe <adrian.larumbe@collabora.com>

On 13.07.2026 16:29, Linmao Li wrote:
> drmm_mutex_init() can fail while registering the managed cleanup action.
> When that happens, drmm_add_action_or_reset() destroys the mutex before
> returning the error. Continuing initialization would therefore leave the
> debugfs GEM object list with an unusable lock.
> 
> Propagate the error as is already done for the other managed mutexes in
> panthor_device_init().
> 
> Fixes: a3707f53eb3f ("drm/panthor: show device-wide list of DRM GEM objects over DebugFS")
> Signed-off-by: Linmao Li <lilinmao@kylinos.cn>
> ---
>  drivers/gpu/drm/panthor/panthor_device.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/panthor/panthor_device.c b/drivers/gpu/drm/panthor/panthor_device.c
> index 0b25abebb803..9687c59de350 100644
> --- a/drivers/gpu/drm/panthor/panthor_device.c
> +++ b/drivers/gpu/drm/panthor/panthor_device.c
> @@ -182,7 +182,10 @@ int panthor_device_init(struct panthor_device *ptdev)
>  		return ret;
>  
>  #ifdef CONFIG_DEBUG_FS
> -	drmm_mutex_init(&ptdev->base, &ptdev->gems.lock);
> +	ret = drmm_mutex_init(&ptdev->base, &ptdev->gems.lock);
> +	if (ret)
> +		return ret;
> +
>  	INIT_LIST_HEAD(&ptdev->gems.node);
>  #endif
>  
> -- 
> 2.25.1
> 

Adrian Larumbe
Re: [PATCH] drm/panthor: Check debugfs GEM lock initialization
Posted by Liviu Dudau 1 week, 3 days ago
On Mon, Jul 13, 2026 at 04:29:12PM +0800, Linmao Li wrote:
> drmm_mutex_init() can fail while registering the managed cleanup action.
> When that happens, drmm_add_action_or_reset() destroys the mutex before
> returning the error. Continuing initialization would therefore leave the
> debugfs GEM object list with an unusable lock.
> 
> Propagate the error as is already done for the other managed mutexes in
> panthor_device_init().
> 
> Fixes: a3707f53eb3f ("drm/panthor: show device-wide list of DRM GEM objects over DebugFS")
> Signed-off-by: Linmao Li <lilinmao@kylinos.cn>

Reviewed-by: Liviu Dudau <liviu.dudau@arm.com>

Best regards,
Liviu

> ---
>  drivers/gpu/drm/panthor/panthor_device.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/panthor/panthor_device.c b/drivers/gpu/drm/panthor/panthor_device.c
> index 0b25abebb803..9687c59de350 100644
> --- a/drivers/gpu/drm/panthor/panthor_device.c
> +++ b/drivers/gpu/drm/panthor/panthor_device.c
> @@ -182,7 +182,10 @@ int panthor_device_init(struct panthor_device *ptdev)
>  		return ret;
>  
>  #ifdef CONFIG_DEBUG_FS
> -	drmm_mutex_init(&ptdev->base, &ptdev->gems.lock);
> +	ret = drmm_mutex_init(&ptdev->base, &ptdev->gems.lock);
> +	if (ret)
> +		return ret;
> +
>  	INIT_LIST_HEAD(&ptdev->gems.node);
>  #endif
>  
> -- 
> 2.25.1
> 

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