]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
cpuidle: Simplify cpuidle_register_device() with guard()
authorHuisong Li <lihuisong@huawei.com>
Fri, 3 Apr 2026 08:45:42 +0000 (16:45 +0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Sat, 4 Apr 2026 18:44:42 +0000 (20:44 +0200)
Use guard() macro for mutex to simplify the control flow in
cpuidle_register_device().

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Link: https://patch.msgid.link/20260403084542.708104-1-lihuisong@huawei.com
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/cpuidle/cpuidle.c

index c7876e9e024f9076663063ad21cfc69343fdbbe7..8c037db46792e3868eed94ef796ed6662ea85d31 100644 (file)
@@ -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);