Messages in this thread | | | Date | Wed, 20 Mar 2013 10:14:00 -0600 | From | Stephen Warren <> | Subject | Re: [PATCH] BUG: pinmux: forbid mux_usecount to be set at UINT_MAX |
| |
On 03/20/2013 05:31 AM, Richard Genoud wrote: > If pin_free is called on a pin already freed, mux_usecount is set to > UINT_MAX which is really a bad idea. > This will silently ignore a double call to pin_free
Shouldn't we WARN_ON(this case)?
> diff --git a/drivers/pinctrl/pinmux.c b/drivers/pinctrl/pinmux.c
> if (!gpio_range) { > - desc->mux_usecount--; > - if (desc->mux_usecount) > + if (1 == desc->mux_usecount) > + desc->mux_usecount = 0; > + else > return NULL;
What if desc-mux_usecount was 2; this patch prevents the use-count from being decremented to 1 in this case. Shouldn't this be:
if (!gpio_range) { + if (WARN_ON(!desc->mux_usecount)) + return NULL; desc->mux_usecount--;
| |