| From cf0ec141e17ae795a7910f262fe7a68dd2426576 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Fri, 23 Apr 2021 12:18:14 +0200 |
| Subject: memory: stm32-fmc2-ebi: add missing of_node_put for loop iteration |
| |
| From: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> |
| |
| [ Upstream commit 2f9dc6a357ff3b82c1e54d29fb5d52b8d4a0c587 ] |
| |
| 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: 66b8173a197f ("memory: stm32-fmc2-ebi: add STM32 FMC2 EBI controller driver") |
| Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> |
| Reviewed-by: Christophe Kerello <christophe.kerello@foss.st.com> |
| Link: https://lore.kernel.org/r/20210423101815.119341-1-krzysztof.kozlowski@canonical.com |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/memory/stm32-fmc2-ebi.c | 4 ++++ |
| 1 file changed, 4 insertions(+) |
| |
| diff --git a/drivers/memory/stm32-fmc2-ebi.c b/drivers/memory/stm32-fmc2-ebi.c |
| index 4d5758c419c5..ffec26a99313 100644 |
| --- a/drivers/memory/stm32-fmc2-ebi.c |
| +++ b/drivers/memory/stm32-fmc2-ebi.c |
| @@ -1048,16 +1048,19 @@ static int stm32_fmc2_ebi_parse_dt(struct stm32_fmc2_ebi *ebi) |
| if (ret) { |
| dev_err(dev, "could not retrieve reg property: %d\n", |
| ret); |
| + of_node_put(child); |
| return ret; |
| } |
| |
| if (bank >= FMC2_MAX_BANKS) { |
| dev_err(dev, "invalid reg value: %d\n", bank); |
| + of_node_put(child); |
| return -EINVAL; |
| } |
| |
| if (ebi->bank_assigned & BIT(bank)) { |
| dev_err(dev, "bank already assigned: %d\n", bank); |
| + of_node_put(child); |
| return -EINVAL; |
| } |
| |
| @@ -1066,6 +1069,7 @@ static int stm32_fmc2_ebi_parse_dt(struct stm32_fmc2_ebi *ebi) |
| if (ret) { |
| dev_err(dev, "setup chip select %d failed: %d\n", |
| bank, ret); |
| + of_node_put(child); |
| return ret; |
| } |
| } |
| -- |
| 2.30.2 |
| |