Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c8f50e86 authored by Wei Yongjun's avatar Wei Yongjun Committed by Linus Walleij
Browse files

pinctrl: core: fix missing unlock on error in pinctrl_find_gpio_range_from_pin()



Add the missing unlock before return from function pinctrl_find_gpio_range_from_pin()
in the error handling case.

Introduced by commit 2ff3477efd7086544b9e298fc63afab0645921b4.
(pinctrl: add pin list based GPIO ranges)

Signed-off-by: default avatarWei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 5a68e7a7
Loading
Loading
Loading
Loading
+7 −8
Original line number Diff line number Diff line
@@ -465,7 +465,7 @@ struct pinctrl_gpio_range *
pinctrl_find_gpio_range_from_pin(struct pinctrl_dev *pctldev,
				 unsigned int pin)
{
	struct pinctrl_gpio_range *range = NULL;
	struct pinctrl_gpio_range *range;

	mutex_lock(&pctldev->mutex);
	/* Loop over the ranges */
@@ -475,17 +475,16 @@ pinctrl_find_gpio_range_from_pin(struct pinctrl_dev *pctldev,
			int a;
			for (a = 0; a < range->npins; a++) {
				if (range->pins[a] == pin)
					return range;
					goto out;
			}
		} else if (pin >= range->pin_base &&
			   pin < range->pin_base + range->npins) {
			mutex_unlock(&pctldev->mutex);
			return range;
		}
			   pin < range->pin_base + range->npins)
			goto out;
	}
	range = NULL;
out:
	mutex_unlock(&pctldev->mutex);

	return NULL;
	return range;
}
EXPORT_SYMBOL_GPL(pinctrl_find_gpio_range_from_pin);