summaryrefslogtreecommitdiff
path: root/drivers/mtd
diff options
context:
space:
mode:
authorErick Karanja <karanja99erick@gmail.com>2025-09-22 14:07:27 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-10-15 12:04:11 +0200
commit979d6fc878e70225bac48143efa9e1483ff4363d (patch)
treed5fdb673df9948b0107d25168e79bc7f6f01d608 /drivers/mtd
parent01118321e0c8a5f3ece57d0d377bfc92d83cd210 (diff)
downloadlinux-979d6fc878e70225bac48143efa9e1483ff4363d.tar.gz
linux-979d6fc878e70225bac48143efa9e1483ff4363d.tar.bz2
linux-979d6fc878e70225bac48143efa9e1483ff4363d.zip
mtd: rawnand: atmel: Fix error handling path in atmel_nand_controller_add_nands
[ Upstream commit 8ed4728eb9f10b57c3eb02e0f6933a89ffcb8a91 ] In case of a jump to the err label due to atmel_nand_create() or atmel_nand_controller_add_nand() failure, the reference to nand_np need to be released Use for_each_child_of_node_scoped() to fix the issue. Fixes: f88fc122cc34 ("mtd: nand: Cleanup/rework the atmel_nand driver") Signed-off-by: Erick Karanja <karanja99erick@gmail.com> Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'drivers/mtd')
-rw-r--r--drivers/mtd/nand/raw/atmel/nand-controller.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/mtd/nand/raw/atmel/nand-controller.c b/drivers/mtd/nand/raw/atmel/nand-controller.c
index db94d14a3807..49e00458eebe 100644
--- a/drivers/mtd/nand/raw/atmel/nand-controller.c
+++ b/drivers/mtd/nand/raw/atmel/nand-controller.c
@@ -1858,7 +1858,7 @@ atmel_nand_controller_legacy_add_nands(struct atmel_nand_controller *nc)
static int atmel_nand_controller_add_nands(struct atmel_nand_controller *nc)
{
- struct device_node *np, *nand_np;
+ struct device_node *np;
struct device *dev = nc->dev;
int ret, reg_cells;
u32 val;
@@ -1885,7 +1885,7 @@ static int atmel_nand_controller_add_nands(struct atmel_nand_controller *nc)
reg_cells += val;
- for_each_child_of_node(np, nand_np) {
+ for_each_child_of_node_scoped(np, nand_np) {
struct atmel_nand *nand;
nand = atmel_nand_create(nc, nand_np, reg_cells);