Commit 8ed4728e authored by Erick Karanja's avatar Erick Karanja Committed by Miquel Raynal
Browse files

mtd: rawnand: atmel: Fix error handling path in atmel_nand_controller_add_nands



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: f88fc122 ("mtd: nand: Cleanup/rework the atmel_nand driver")

Signed-off-by: default avatarErick Karanja <karanja99erick@gmail.com>
Signed-off-by: default avatarMiquel Raynal <miquel.raynal@bootlin.com>
parent 3148d0e5
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1853,7 +1853,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;
@@ -1880,7 +1880,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);