Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

pmdomain: qcom: rpmpd: Simplify locking with guard()

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>

authored by

Krzysztof Kozlowski and committed by
Ulf Hansson
f3185222 005d29ac

+6 -14
+6 -14
drivers/pmdomain/qcom/rpmpd.c
··· 1 1 // SPDX-License-Identifier: GPL-2.0 2 2 /* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. */ 3 3 4 + #include <linux/cleanup.h> 4 5 #include <linux/err.h> 5 6 #include <linux/init.h> 6 7 #include <linux/kernel.h> ··· 1025 1024 int ret; 1026 1025 struct rpmpd *pd = domain_to_rpmpd(domain); 1027 1026 1028 - mutex_lock(&rpmpd_lock); 1027 + guard(mutex)(&rpmpd_lock); 1029 1028 1030 1029 ret = rpmpd_send_enable(pd, true); 1031 1030 if (ret) 1032 - goto out; 1031 + return ret; 1033 1032 1034 1033 pd->enabled = true; 1035 1034 1036 1035 if (pd->corner) 1037 1036 ret = rpmpd_aggregate_corner(pd); 1038 - 1039 - out: 1040 - mutex_unlock(&rpmpd_lock); 1041 1037 1042 1038 return ret; 1043 1039 } ··· 1058 1060 static int rpmpd_set_performance(struct generic_pm_domain *domain, 1059 1061 unsigned int state) 1060 1062 { 1061 - int ret = 0; 1062 1063 struct rpmpd *pd = domain_to_rpmpd(domain); 1063 1064 1064 1065 if (state > pd->max_state) 1065 1066 state = pd->max_state; 1066 1067 1067 - mutex_lock(&rpmpd_lock); 1068 + guard(mutex)(&rpmpd_lock); 1068 1069 1069 1070 pd->corner = state; 1070 1071 1071 1072 /* Always send updates for vfc and vfl */ 1072 1073 if (!pd->enabled && pd->key != cpu_to_le32(KEY_FLOOR_CORNER) && 1073 1074 pd->key != cpu_to_le32(KEY_FLOOR_LEVEL)) 1074 - goto out; 1075 + return 0; 1075 1076 1076 - ret = rpmpd_aggregate_corner(pd); 1077 - 1078 - out: 1079 - mutex_unlock(&rpmpd_lock); 1080 - 1081 - return ret; 1077 + return rpmpd_aggregate_corner(pd); 1082 1078 } 1083 1079 1084 1080 static int rpmpd_probe(struct platform_device *pdev)