From: Tony Lindgren <tony@atomide.com>
To: "H. Nikolaus Schaller" <hns@goldelico.com>
Cc: "open list:GPIO SUBSYSTEM" <linux-gpio@vger.kernel.org>,
Linus Walleij <linus.walleij@linaro.org>,
Discussions about the Letux Kernel <letux-kernel@openphoenux.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
kernel@pyra-handheld.com
Subject: Re: BUG: drivers/pinctrl/core: races in pinctrl_groups and deferred probing
Date: Fri, 15 Jun 2018 04:13:18 -0700 [thread overview]
Message-ID: <20180615111318.GJ112168@atomide.com> (raw)
In-Reply-To: <20180615065810.GI112168@atomide.com>
* Tony Lindgren <tony@atomide.com> [180615 07:00]:
> * H. Nikolaus Schaller <hns@goldelico.com> [180614 12:15]:
> > Hi Tony,
> >
> > > Am 14.06.2018 um 14:01 schrieb Tony Lindgren <tony@atomide.com>:
> > >
> > > * H. Nikolaus Schaller <hns@goldelico.com> [180613 12:41]:
> > >>
> > >> Now if I look into pinctrl_generic_add_group() and pinctrl_generic_get_group_name(),
> > >> pctldev->num_groups++ is not protected if pinctrl_generic_add_group() may be called by
> > >> two threads in parallel for the same pctldev. Hence a second thread may try to insert
> > >> a different node into the radix tree at the same selector index. This fails but there
> > >> is no error check - and the second entry is completely missing (but probably assumed to
> > >> be there).
> > >
> > > Sounds like pinctrl-single.c is missing mutex around calls to
> > > pinctrl_generic_add_group()?
> >
> > Yes, that could be. I didn't research the call path, just the one of
> > devm_pinctrl_get(). That uses a mutex in
>
> In addition to missing mutex lock around the generic pinctrl functions
> we also have racy helpers pinctrl_generic_remove_last_group() and
> pinmux_generic_remove_last_function() like you pointed out. I'll post
> a patch for you later on today to test.
OK I posted a series to fix these issues hopefully as thread
"[PATCH 0/5] pinctrl fixes for generic functions and groups".
Can you please test and see if that is enough to fix the issues
you're seeing?
Regards,
Tony
next prev parent reply other threads:[~2018-06-15 11:13 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-13 12:39 BUG: drivers/pinctrl/core: races in pinctrl_groups and deferred probing H. Nikolaus Schaller
2018-06-14 12:01 ` Tony Lindgren
2018-06-14 12:12 ` H. Nikolaus Schaller
2018-06-15 6:58 ` Tony Lindgren
2018-06-15 11:13 ` Tony Lindgren [this message]
2018-06-15 11:18 ` H. Nikolaus Schaller
2018-06-16 11:07 ` [Letux-kernel] " H. Nikolaus Schaller
2018-06-18 6:46 ` Tony Lindgren
2018-06-18 8:22 ` Andy Shevchenko
2018-06-18 9:14 ` Tony Lindgren
2018-06-18 9:29 ` H. Nikolaus Schaller
2018-06-18 9:54 ` Tony Lindgren
2018-06-18 9:59 ` H. Nikolaus Schaller
[not found] ` <CA+Ot1OxNj30KgHWJHXgWbnXYkNXTNvd_t-b6+uG3u=z8+pZf2Q@mail.gmail.com>
2018-06-18 11:51 ` Tony Lindgren
2018-06-18 16:43 ` H. Nikolaus Schaller
2018-06-18 18:17 ` Tony Lindgren
2018-06-18 18:30 ` H. Nikolaus Schaller
2018-06-19 4:34 ` Tony Lindgren
2018-06-19 4:51 ` H. Nikolaus Schaller
2018-06-19 6:11 ` Tony Lindgren
2018-06-19 6:39 ` H. Nikolaus Schaller
2018-06-19 7:15 ` Tony Lindgren
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180615111318.GJ112168@atomide.com \
--to=tony@atomide.com \
--cc=hns@goldelico.com \
--cc=kernel@pyra-handheld.com \
--cc=letux-kernel@openphoenux.org \
--cc=linus.walleij@linaro.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).