On 2021/7/15 19:49, weiyongjun (A) wrote: >> 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@xxxxxxxxxx> >> Signed-off-by: Zhen Lei <thunder.leizhen@xxxxxxxxxx> >> --- >> 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. The local variable 'gsel' is no longer needed. I have deleted it. > > Do not mix this cleanup with bugfix. Yes, it might be clearer. > > > > . >