]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
soc: qcom: pmic_glink_altmode: simplify locking with guard()
authorKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Thu, 22 Aug 2024 16:48:50 +0000 (18:48 +0200)
committerBjorn Andersson <andersson@kernel.org>
Thu, 26 Dec 2024 19:00:07 +0000 (13:00 -0600)
Simplify error handling (less gotos) over locks with guard().

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20240822164853.231087-1-krzysztof.kozlowski@linaro.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
drivers/soc/qcom/pmic_glink_altmode.c

index 463b1c5288318dff89c4079f1af76893546ec7aa..bd06ce16180411059e9efb14d9aeccda27744280 100644 (file)
@@ -5,6 +5,7 @@
  */
 #include <linux/auxiliary_bus.h>
 #include <linux/bitfield.h>
+#include <linux/cleanup.h>
 #include <linux/module.h>
 #include <linux/of.h>
 #include <linux/of_device.h>
@@ -114,7 +115,7 @@ static int pmic_glink_altmode_request(struct pmic_glink_altmode *altmode, u32 cm
         * The USBC_CMD_WRITE_REQ ack doesn't identify the request, so wait for
         * one ack at a time.
         */
-       mutex_lock(&altmode->lock);
+       guard(mutex)(&altmode->lock);
 
        req.hdr.owner = cpu_to_le32(altmode->owner_id);
        req.hdr.type = cpu_to_le32(PMIC_GLINK_REQ_RESP);
@@ -125,18 +126,16 @@ static int pmic_glink_altmode_request(struct pmic_glink_altmode *altmode, u32 cm
        ret = pmic_glink_send(altmode->client, &req, sizeof(req));
        if (ret) {
                dev_err(altmode->dev, "failed to send altmode request: %#x (%d)\n", cmd, ret);
-               goto out_unlock;
+               return ret;
        }
 
        left = wait_for_completion_timeout(&altmode->pan_ack, 5 * HZ);
        if (!left) {
                dev_err(altmode->dev, "timeout waiting for altmode request ack for: %#x\n", cmd);
-               ret = -ETIMEDOUT;
+               return -ETIMEDOUT;
        }
 
-out_unlock:
-       mutex_unlock(&altmode->lock);
-       return ret;
+       return 0;
 }
 
 static void pmic_glink_altmode_enable_dp(struct pmic_glink_altmode *altmode,