Skip to content
Snippets Groups Projects
Commit 84fa4a10 authored by Krzysztof Kozlowski's avatar Krzysztof Kozlowski Committed by Greg Kroah-Hartman
Browse files

memory: stm32-fmc2-ebi: add missing of_node_put for loop iteration


[ Upstream commit 2f9dc6a3 ]

Early exits from for_each_available_child_of_node() should decrement the
node reference counter.  Reported by Coccinelle:

  drivers/memory/stm32-fmc2-ebi.c:1046:1-33: WARNING:
    Function "for_each_available_child_of_node" should have of_node_put() before return around line 1051.

Fixes: 66b8173a ("memory: stm32-fmc2-ebi: add STM32 FMC2 EBI controller driver")
Signed-off-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Reviewed-by: default avatarChristophe Kerello <christophe.kerello@foss.st.com>
Link: https://lore.kernel.org/r/20210423101815.119341-1-krzysztof.kozlowski@canonical.com


Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent c385d93c
No related branches found
No related tags found
No related merge requests found
...@@ -1048,16 +1048,19 @@ static int stm32_fmc2_ebi_parse_dt(struct stm32_fmc2_ebi *ebi) ...@@ -1048,16 +1048,19 @@ static int stm32_fmc2_ebi_parse_dt(struct stm32_fmc2_ebi *ebi)
if (ret) { if (ret) {
dev_err(dev, "could not retrieve reg property: %d\n", dev_err(dev, "could not retrieve reg property: %d\n",
ret); ret);
of_node_put(child);
return ret; return ret;
} }
if (bank >= FMC2_MAX_BANKS) { if (bank >= FMC2_MAX_BANKS) {
dev_err(dev, "invalid reg value: %d\n", bank); dev_err(dev, "invalid reg value: %d\n", bank);
of_node_put(child);
return -EINVAL; return -EINVAL;
} }
if (ebi->bank_assigned & BIT(bank)) { if (ebi->bank_assigned & BIT(bank)) {
dev_err(dev, "bank already assigned: %d\n", bank); dev_err(dev, "bank already assigned: %d\n", bank);
of_node_put(child);
return -EINVAL; return -EINVAL;
} }
...@@ -1066,6 +1069,7 @@ static int stm32_fmc2_ebi_parse_dt(struct stm32_fmc2_ebi *ebi) ...@@ -1066,6 +1069,7 @@ static int stm32_fmc2_ebi_parse_dt(struct stm32_fmc2_ebi *ebi)
if (ret) { if (ret) {
dev_err(dev, "setup chip select %d failed: %d\n", dev_err(dev, "setup chip select %d failed: %d\n",
bank, ret); bank, ret);
of_node_put(child);
return ret; return ret;
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment