Messages in this thread Patch in this message | | | Date | Mon, 3 Feb 2014 12:39:01 +0100 | From | Stanislaw Gruszka <> | Subject | [PATCH] pinctrl: protect pinctrl_list add |
| |
We have few fedora bug reports about list corruption on pinctrl, for example: https://bugzilla.redhat.com/show_bug.cgi?id=1051918
Most likely corruption happen due lack of protection of pinctrl_list when adding new nodes to it. Patch corrects that.
Fixes: 57b676f9c1b ("pinctrl: fix and simplify locking") Cc: stable@vger.kernel.org Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> --- I only compile tested patch, also did not get test results from bug reporters yet. But I'm pretty confident that patch fixes the problem and does not cause any other deadlock.
drivers/pinctrl/core.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/drivers/pinctrl/core.c b/drivers/pinctrl/core.c index 5ee61a4..cab020a 100644 --- a/drivers/pinctrl/core.c +++ b/drivers/pinctrl/core.c @@ -851,7 +851,9 @@ static struct pinctrl *create_pinctrl(struct device *dev) kref_init(&p->users); /* Add the pinctrl handle to the global list */ + mutex_lock(&pinctrl_list_mutex); list_add_tail(&p->node, &pinctrl_list); + mutex_unlock(&pinctrl_list_mutex); return p; } -- 1.7.11.7
| |