Re: [PATCH] pinctrl: single: Fix error return code in pcs_parse_bits_in_pinctrl_entry()
From: weiyongjun (A) <hidden>
Date: 2021-07-15 11:49:33
Also in:
linux-arm-kernel, linux-omap, lkml
From: weiyongjun (A) <hidden>
Date: 2021-07-15 11:49:33
Also in:
linux-arm-kernel, linux-omap, lkml
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 <redacted> Signed-off-by: Zhen Lei <redacted> --- 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.