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
1 changed files with 5 additions and 0 deletions
|
@ -194,6 +194,11 @@ static const char *pin_free(struct pinctrl_dev *pctldev, int pin,
|
|||
}
|
||||
|
||||
if (!gpio_range) {
|
||||
/*
|
||||
* A pin should not be freed more times than allocated.
|
||||
*/
|
||||
if (WARN_ON(!desc->mux_usecount))
|
||||
return NULL;
|
||||
desc->mux_usecount--;
|
||||
if (desc->mux_usecount)
|
||||
return NULL;
|
||||
|
|
Loading…
Reference in a new issue