pinctrl: core: Add proper mutex lock in pinctrl_request_gpio
authorAxel Lin <axel.lin@ingics.com>
Mon, 19 Aug 2013 02:07:46 +0000 (10:07 +0800)
committerLinus Walleij <linus.walleij@linaro.org>
Wed, 28 Aug 2013 11:13:05 +0000 (13:13 +0200)
commit9b77ace409e1419c331209c4c8eb2c8bc990e9fd
tree0bb3a43aee693c3fe68924a2dfc07254ef3f69b3
parent406044695fb286110324491f26f3e05048488809
pinctrl: core: Add proper mutex lock in pinctrl_request_gpio

This one is missed in commit 42fed7ba "pinctrl: move subsystem mutex to
pinctrl_dev struct".

I think this fixes the race between pin_free() and pin_request() calls.
It protects accessing the members of pctldev->desc.
(e.g. update desc->mux_usecount, desc->gpio_owner, desc->mux_owner, etc)
Current code grabs pctldev->mutex before calling pinmux_free_gpio(),
but did not grab the mutex while calling pinmux_request_gpio().

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/core.c