[PATCH v3] pinctrl: move subsystem mutex to pinctrl_dev struct

Linus Walleij linus.walleij at linaro.org
Mon May 27 09:57:13 EDT 2013


On Fri, May 24, 2013 at 5:22 PM, James Hogan <james.hogan at imgtec.com> wrote:
> On 26 April 2013 16:08, Linus Walleij <linus.walleij at stericsson.com> wrote:
>> @@ -608,7 +610,7 @@ static int pinconf_dbg_config_print(struct seq_file *s, void *d)
>>         bool found = false;
>>         unsigned long config;
>>
>> -       mutex_lock(&pinctrl_mutex);
>> +       mutex_lock(&pctldev->mutex);
>>
>>         /* Parse the pinctrl map and look for the elected pin/state */
>>         for_each_maps(maps_node, i, map) {
>
> This change causes an oops on v3.10-rc2 when you read pinconf-config
> because pctldev is initialised to NULL and not set until inside the
> loop.

It is taking the wrong mutex. The function right below it is
also iterating the maps, and then it shall take the maps
mutex and nothing else.

I just sent a patch fixing it up.

> If this debugfs file
> isn't meant to be specific to a pinctrl device should it be in the
> root pinctrl directory instead of in each pinctrl device's directory?

Yes. We need to fix this after this immediate fixup, for the next
merge window.

Yours,
Linus Walleij



More information about the linux-arm-kernel mailing list