]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
pmdomain: qcom: rpmpd: Simplify locking with guard()
authorKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Fri, 23 Aug 2024 12:51:12 +0000 (14:51 +0200)
committerUlf Hansson <ulf.hansson@linaro.org>
Fri, 13 Sep 2024 10:21:04 +0000 (12:21 +0200)
Simplify error handling (less gotos) over locks with guard().

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Konrad Dybcio <konradybcio@kernel.org>
Link: https://lore.kernel.org/r/20240823-cleanup-h-guard-pm-domain-v1-8-8320722eaf39@linaro.org
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/pmdomain/qcom/rpmpd.c

index 5e6280b4cf7018ff7c97859ce0be899b4a8ea518..0be6b3026e3aa0040912247eaeef0ea2600f3b72 100644 (file)
@@ -1,6 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0
 /* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. */
 
+#include <linux/cleanup.h>
 #include <linux/err.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
@@ -1024,20 +1025,17 @@ static int rpmpd_power_on(struct generic_pm_domain *domain)
        int ret;
        struct rpmpd *pd = domain_to_rpmpd(domain);
 
-       mutex_lock(&rpmpd_lock);
+       guard(mutex)(&rpmpd_lock);
 
        ret = rpmpd_send_enable(pd, true);
        if (ret)
-               goto out;
+               return ret;
 
        pd->enabled = true;
 
        if (pd->corner)
                ret = rpmpd_aggregate_corner(pd);
 
-out:
-       mutex_unlock(&rpmpd_lock);
-
        return ret;
 }
 
@@ -1060,27 +1058,21 @@ static int rpmpd_power_off(struct generic_pm_domain *domain)
 static int rpmpd_set_performance(struct generic_pm_domain *domain,
                                 unsigned int state)
 {
-       int ret = 0;
        struct rpmpd *pd = domain_to_rpmpd(domain);
 
        if (state > pd->max_state)
                state = pd->max_state;
 
-       mutex_lock(&rpmpd_lock);
+       guard(mutex)(&rpmpd_lock);
 
        pd->corner = state;
 
        /* Always send updates for vfc and vfl */
        if (!pd->enabled && pd->key != cpu_to_le32(KEY_FLOOR_CORNER) &&
            pd->key != cpu_to_le32(KEY_FLOOR_LEVEL))
-               goto out;
+               return 0;
 
-       ret = rpmpd_aggregate_corner(pd);
-
-out:
-       mutex_unlock(&rpmpd_lock);
-
-       return ret;
+       return rpmpd_aggregate_corner(pd);
 }
 
 static int rpmpd_probe(struct platform_device *pdev)