pinctrl: sunxi: drop lock on error path
authorLinus Walleij <linus.walleij@linaro.org>
Thu, 29 Aug 2013 17:17:13 +0000 (19:17 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Fri, 30 Aug 2013 07:57:27 +0000 (09:57 +0200)
I forgot to drop the lock for the return inside the loop
protected by the spinlock in the pin config routine when
merging in -rc7 in commit 6ad30ce046aefbdc3848232c665a728860d7bb68

Reported-by: Sherman Yin <syin@broadcom.com>
Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/pinctrl-sunxi.c

index 532202bbfc33d235fbfd6ca842bb2fe6405516cb..4432e5e062c5af219f23678c625665092fc794be 100644 (file)
@@ -291,8 +291,10 @@ static int sunxi_pconf_group_set(struct pinctrl_dev *pctldev,
                switch (pinconf_to_config_param(configs[i])) {
                case PIN_CONFIG_DRIVE_STRENGTH:
                        strength = pinconf_to_config_argument(configs[i]);
-                       if (strength > 40)
+                       if (strength > 40) {
+                               spin_unlock_irqrestore(&pctl->lock, flags);
                                return -EINVAL;
+                       }
                        /*
                         * We convert from mA to what the register expects:
                         *   0: 10mA