[PATCH] drm/xe/hwmon: Use devm_mutex_init()

Christophe JAILLET posted 1 patch 5 months ago
drivers/gpu/drm/xe/xe_hwmon.c | 10 +---------
1 file changed, 1 insertion(+), 9 deletions(-)
[PATCH] drm/xe/hwmon: Use devm_mutex_init()
Posted by Christophe JAILLET 5 months ago
Use devm_mutex_init() instead of hand-writing it.

This saves some LoC, improves readability and saves some space in the
generated .o file.

Before:
======
   text	   data	    bss	    dec	    hex	filename
  36884	  10296	     64	  47244	   b88c	drivers/gpu/drm/xe/xe_hwmon.o

After:
=====
   text	   data	    bss	    dec	    hex	filename
  36651	  10224	     64	  46939	   b75b	drivers/gpu/drm/xe/xe_hwmon.o

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
 drivers/gpu/drm/xe/xe_hwmon.c | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_hwmon.c b/drivers/gpu/drm/xe/xe_hwmon.c
index 32a76ae6e9dc..e65382d4426a 100644
--- a/drivers/gpu/drm/xe/xe_hwmon.c
+++ b/drivers/gpu/drm/xe/xe_hwmon.c
@@ -1294,13 +1294,6 @@ xe_hwmon_get_preregistration_info(struct xe_hwmon *hwmon)
 			xe_hwmon_fan_input_read(hwmon, channel, &fan_speed);
 }
 
-static void xe_hwmon_mutex_destroy(void *arg)
-{
-	struct xe_hwmon *hwmon = arg;
-
-	mutex_destroy(&hwmon->hwmon_lock);
-}
-
 int xe_hwmon_register(struct xe_device *xe)
 {
 	struct device *dev = xe->drm.dev;
@@ -1319,8 +1312,7 @@ int xe_hwmon_register(struct xe_device *xe)
 	if (!hwmon)
 		return -ENOMEM;
 
-	mutex_init(&hwmon->hwmon_lock);
-	ret = devm_add_action_or_reset(dev, xe_hwmon_mutex_destroy, hwmon);
+	ret = devm_mutex_init(dev, &hwmon->hwmon_lock);
 	if (ret)
 		return ret;
 
-- 
2.51.0
Re: [PATCH] drm/xe/hwmon: Use devm_mutex_init()
Posted by Lucas De Marchi 5 months ago
On Sun, 07 Sep 2025 15:42:17 +0200, Christophe JAILLET wrote:
> Use devm_mutex_init() instead of hand-writing it.
> 
> This saves some LoC, improves readability and saves some space in the
> generated .o file.
> 
> Before:
> ======
>    text	   data	    bss	    dec	    hex	filename
>   36884	  10296	     64	  47244	   b88c	drivers/gpu/drm/xe/xe_hwmon.o
> 
> [...]

Applied to drm-xe-next, thanks!

[1/1] drm/xe/hwmon: Use devm_mutex_init()
      commit: 7b77941724628e6171a286edbf04d67a1f1c1459

Best regards,
-- 
Lucas De Marchi
Re: [PATCH] drm/xe/hwmon: Use devm_mutex_init()
Posted by Summers, Stuart 5 months ago
On Sun, 2025-09-07 at 15:42 +0200, Christophe JAILLET wrote:
> Use devm_mutex_init() instead of hand-writing it.
> 
> This saves some LoC, improves readability and saves some space in the
> generated .o file.
> 
> Before:
> ======
>    text    data     bss     dec     hex filename
>   36884   10296      64   47244    b88c drivers/gpu/drm/xe/xe_hwmon.o
> 
> After:
> =====
>    text    data     bss     dec     hex filename
>   36651   10224      64   46939    b75b drivers/gpu/drm/xe/xe_hwmon.o
> 
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
> ---
>  drivers/gpu/drm/xe/xe_hwmon.c | 10 +---------
>  1 file changed, 1 insertion(+), 9 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_hwmon.c
> b/drivers/gpu/drm/xe/xe_hwmon.c
> index 32a76ae6e9dc..e65382d4426a 100644
> --- a/drivers/gpu/drm/xe/xe_hwmon.c
> +++ b/drivers/gpu/drm/xe/xe_hwmon.c
> @@ -1294,13 +1294,6 @@ xe_hwmon_get_preregistration_info(struct
> xe_hwmon *hwmon)
>                         xe_hwmon_fan_input_read(hwmon, channel,
> &fan_speed);
>  }
>  
> -static void xe_hwmon_mutex_destroy(void *arg)
> -{
> -       struct xe_hwmon *hwmon = arg;
> -
> -       mutex_destroy(&hwmon->hwmon_lock);
> -}
> -
>  int xe_hwmon_register(struct xe_device *xe)
>  {
>         struct device *dev = xe->drm.dev;
> @@ -1319,8 +1312,7 @@ int xe_hwmon_register(struct xe_device *xe)
>         if (!hwmon)
>                 return -ENOMEM;
>  
> -       mutex_init(&hwmon->hwmon_lock);
> -       ret = devm_add_action_or_reset(dev, xe_hwmon_mutex_destroy,
> hwmon);
> +       ret = devm_mutex_init(dev, &hwmon->hwmon_lock);

Thanks for the patch! Yes I agree this looks better. And we don't want
to use drmm_mutex_init() here because, as was detailed in an earlier
fix here, we can't mix devm_kzalloc with drmm_mutex_init or risk a uaf.

Reviewed-by: Stuart Summers <stuart.summers@intel.com>

>         if (ret)
>                 return ret;
>