On 03/01/2022 15:49, Sam Protsenko wrote: > On Fri, 31 Dec 2021 at 18:20, Krzysztof Kozlowski > <krzysztof.kozlowski@xxxxxxxxxxxxx> wrote: >> >> The driver iterates over its devicetree children with >> for_each_child_of_node() and stores for later found node pointer. This >> has to be put in error paths to avoid leak during re-probing. >> >> Fixes: ab663789d697 ("pinctrl: samsung: Match pin banks with their device nodes") >> Cc: <stable@xxxxxxxxxxxxxxx> >> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxxxxx> >> --- >> drivers/pinctrl/samsung/pinctrl-samsung.c | 29 +++++++++++++++++------ >> 1 file changed, 22 insertions(+), 7 deletions(-) >> >> diff --git a/drivers/pinctrl/samsung/pinctrl-samsung.c b/drivers/pinctrl/samsung/pinctrl-samsung.c >> index 8941f658e7f1..f2864a7869b3 100644 >> --- a/drivers/pinctrl/samsung/pinctrl-samsung.c >> +++ b/drivers/pinctrl/samsung/pinctrl-samsung.c >> @@ -1002,6 +1002,15 @@ samsung_pinctrl_get_soc_data_for_of_alias(struct platform_device *pdev) >> return &(of_data->ctrl[id]); >> } >> >> +static void samsung_banks_of_node_put(struct samsung_pinctrl_drv_data *d) >> +{ >> + struct samsung_pin_bank *bank; >> + unsigned int i; >> + >> + for (i = 0; i < d->nr_banks; ++i, ++bank) >> + of_node_put(bank->of_node); > > But "bank" variable wasn't actually assigned before, only declared? Good point, bank has to be assigned just like in patch 2/24. > >> +} >> + Best regards, Krzysztof