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

From: James Hogan
Date: Fri May 24 2013 - 11:22:54 EST


On 26 April 2013 16:08, Linus Walleij <linus.walleij@xxxxxxxxxxxxxx> 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. I considered initialising pctldev to s->private, but I'm
concerned that if pctldev is altered in the loop it could end up
unlocking a different mutex to the one it locked. 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?

Cheers
James
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/