]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
pinctrl: tb10x: Simplify locking with guard()
authorKrzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Sun, 18 Jan 2026 18:09:30 +0000 (19:09 +0100)
committerLinus Walleij <linusw@kernel.org>
Mon, 19 Jan 2026 00:11:47 +0000 (01:11 +0100)
Simplify error handling (less code in error case) over locks with
guard().

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: Linus Walleij <linusw@kernel.org>
drivers/pinctrl/pinctrl-tb10x.c

index 129fa51d13b1e265b8145c87f19fba0e8f14f1aa..3f581404a9b9a6946d089580f12bb441010784e4 100644 (file)
@@ -607,7 +607,7 @@ static int tb10x_gpio_request_enable(struct pinctrl_dev *pctl,
        int muxmode = -1;
        int i;
 
-       mutex_lock(&state->mutex);
+       guard(mutex)(&state->mutex);
 
        /*
         * Figure out to which port the requested GPIO belongs and how to
@@ -642,7 +642,6 @@ static int tb10x_gpio_request_enable(struct pinctrl_dev *pctl,
                                         * Error: The requested pin is already
                                         * used for something else.
                                         */
-                                       mutex_unlock(&state->mutex);
                                        return -EBUSY;
                                }
                                break;
@@ -667,8 +666,6 @@ static int tb10x_gpio_request_enable(struct pinctrl_dev *pctl,
        if (muxport >= 0)
                tb10x_pinctrl_set_config(state, muxport, muxmode);
 
-       mutex_unlock(&state->mutex);
-
        return 0;
 }
 
@@ -695,34 +692,28 @@ static int tb10x_pctl_set_mux(struct pinctrl_dev *pctl,
        if (grp->port < 0)
                return 0;
 
-       mutex_lock(&state->mutex);
+       guard(mutex)(&state->mutex);
 
        /*
         * Check if the requested function is compatible with previously
         * requested functions.
         */
        if (state->ports[grp->port].count
-                       && (state->ports[grp->port].mode != grp->mode)) {
-               mutex_unlock(&state->mutex);
+                       && (state->ports[grp->port].mode != grp->mode))
                return -EBUSY;
-       }
 
        /*
         * Check if the requested function is compatible with previously
         * requested GPIOs.
         */
        for (i = 0; i < grp->pincnt; i++)
-               if (test_bit(grp->pins[i], state->gpios)) {
-                       mutex_unlock(&state->mutex);
+               if (test_bit(grp->pins[i], state->gpios))
                        return -EBUSY;
-               }
 
        tb10x_pinctrl_set_config(state, grp->port, grp->mode);
 
        state->ports[grp->port].count++;
 
-       mutex_unlock(&state->mutex);
-
        return 0;
 }