[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