drivers/gpu/drm/xe/xe_hwmon.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-)
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
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
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;
>
© 2016 - 2026 Red Hat, Inc.