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

Commit f0059021 authored by Axel Lin's avatar Axel Lin Committed by Linus Walleij
Browse files

pinctrl: core: Hold pinctrldev_list_mutex mutex while traversing pinctrldev_list



This one is missed in commit 44d5f7bb "pinctrl: sink pinctrldev_list_mutex".

Signed-off-by: default avatarAxel Lin <axel.lin@ingics.com>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 031b8ce0
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -392,6 +392,8 @@ static int pinctrl_get_device_gpio_range(unsigned gpio,
{
	struct pinctrl_dev *pctldev = NULL;

	mutex_lock(&pinctrldev_list_mutex);

	/* Loop over the pin controllers */
	list_for_each_entry(pctldev, &pinctrldev_list, node) {
		struct pinctrl_gpio_range *range;
@@ -400,10 +402,13 @@ static int pinctrl_get_device_gpio_range(unsigned gpio,
		if (range != NULL) {
			*outdev = pctldev;
			*outrange = range;
			mutex_unlock(&pinctrldev_list_mutex);
			return 0;
		}
	}

	mutex_unlock(&pinctrldev_list_mutex);

	return -EPROBE_DEFER;
}