[PATCH] pinctrl: single: Fix error return code in pcs_parse_bits_in_pinctrl_entry()
weiyongjun (A)
weiyongjun1 at huawei.com
Thu Jul 15 04:49:27 PDT 2021
> Fix to return -ENOTSUPP instead of 0 when PCS_HAS_PINCONF is true, which
> is the same as that returned in pcs_parse_pinconf().
>
> In addition, I found the value of pcs->flags is not overwritten in
> pcs_parse_bits_in_pinctrl_entry() and its subfunctions, so moving this
> check to the beginning of the function eliminates unnecessary rollback
> operations.
>
> Fixes: 4e7e8017a80e ("pinctrl: pinctrl-single: enhance to configure multiple pins of different modules")
> Reported-by: Hulk Robot <hulkci at huawei.com>
> Signed-off-by: Zhen Lei <thunder.leizhen at huawei.com>
> ---
> drivers/pinctrl/pinctrl-single.c | 21 ++++++++-------------
> 1 file changed, 8 insertions(+), 13 deletions(-)
>
>
> npins_in_row = pcs->width / pcs->bits_per_pin;
>
> vals = devm_kzalloc(pcs->dev,
> @@ -1212,29 +1217,19 @@ static int pcs_parse_bits_in_pinctrl_entry(struct pcs_device *pcs,
> goto free_pins;
> }
>
> - gsel = pinctrl_generic_add_group(pcs->pctl, np->name, pins, found, pcs);
> - if (gsel < 0) {
> - res = gsel;
> + res = pinctrl_generic_add_group(pcs->pctl, np->name, pins, found, pcs);
> + if (res < 0)
> goto free_function;
> - }
This change cause 'gsel' not set.
Do not mix this cleanup with bugfix.
More information about the linux-arm-kernel
mailing list