Re: [PATCH] cpuidle: Simplify cpuidle_register_device() with guard()

From: Rafael J. Wysocki

Date: Sat Apr 04 2026 - 14:46:10 EST


On Fri, Apr 3, 2026 at 10:45 AM Huisong Li <lihuisong@xxxxxxxxxx> wrote:
>
> Use guard() macro for mutex to simplify the control flow in
> cpuidle_register_device().
>
> Signed-off-by: Huisong Li <lihuisong@xxxxxxxxxx>
> ---
> drivers/cpuidle/cpuidle.c | 12 +++++-------
> 1 file changed, 5 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/cpuidle/cpuidle.c b/drivers/cpuidle/cpuidle.c
> index c7876e9e024f..8c037db46792 100644
> --- a/drivers/cpuidle/cpuidle.c
> +++ b/drivers/cpuidle/cpuidle.c
> @@ -679,16 +679,16 @@ int cpuidle_register_device(struct cpuidle_device *dev)
> if (!dev)
> return -EINVAL;
>
> - mutex_lock(&cpuidle_lock);
> + guard(mutex)(&cpuidle_lock);
>
> if (dev->registered)
> - goto out_unlock;
> + return ret;
>
> __cpuidle_device_init(dev);
>
> ret = __cpuidle_register_device(dev);
> if (ret)
> - goto out_unlock;
> + return ret;
>
> ret = cpuidle_add_sysfs(dev);
> if (ret)
> @@ -700,16 +700,14 @@ int cpuidle_register_device(struct cpuidle_device *dev)
>
> cpuidle_install_idle_handler();
>
> -out_unlock:
> - mutex_unlock(&cpuidle_lock);
> -
> return ret;
>
> out_sysfs:
> cpuidle_remove_sysfs(dev);
> out_unregister:
> __cpuidle_unregister_device(dev);
> - goto out_unlock;
> +
> + return ret;
> }
>
> EXPORT_SYMBOL_GPL(cpuidle_register_device);
> --

Applied as 7.1 material, thanks!