pinmux: forbid mux_usecount to be set at UINT_MAX
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 issue a warning, so that we can correct the code responsible for the double free. Signed-off-by: Richard Genoud <richard.genoud@gmail.com> Reviewed-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
parent
48a23fac5e
commit
740924a267
|
@ -194,6 +194,11 @@ static const char *pin_free(struct pinctrl_dev *pctldev, int pin,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!gpio_range) {
|
if (!gpio_range) {
|
||||||
|
/*
|
||||||
|
* A pin should not be freed more times than allocated.
|
||||||
|
*/
|
||||||
|
if (WARN_ON(!desc->mux_usecount))
|
||||||
|
return NULL;
|
||||||
desc->mux_usecount--;
|
desc->mux_usecount--;
|
||||||
if (desc->mux_usecount)
|
if (desc->mux_usecount)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
Loading…
Reference in New Issue