Skip to contentSkip to conversation

mtd: rawnand: brcmnand: propagate init error -EPROBE_DEFER up

PATCH Superseded Rafał Miłecki 3 participants 3 messages Jul 19, 2023

Subsystems (3)

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 mtd: rawnand: brcmnand: propagate init error -EPROBE_DEFER up

From: Rafał Miłecki <[email protected]>

MTD subsystem may return -EPROBE_DEFER if something isn't ready yet. It's important to pass that error up so device will get probed later.

---
 drivers/mtd/nand/raw/brcmnand/brcmnand.c | 2 ++
 1 file changed, 2 insertions(+)
drivers/mtd/nand/raw/brcmnand/brcmnand.c +2 -0
index 39661e23d7d4..cca2b153ae26 100644
@@ -3245,6 +3245,8 @@ int brcmnand_probe(struct platform_device *pdev, struct brcmnand_soc *soc)
 
 			ret = brcmnand_init_cs(host, NULL);
 			if (ret) {
+				if (ret == -EPROBE_DEFER)
+					goto err;
 				devm_kfree(dev, host);
 				continue; /* Try all chip-selects */
 			}
Signature · 6 lines
2.35.3


______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
maintainer
#1 lore raw

Hi Rafał,

[email protected] wrote on Tue, 18 Jul 2023 18:33:31 +0200:

Quoted 15 lines

From: Rafał Miłecki <[email protected]>

MTD subsystem may return -EPROBE_DEFER if something isn't ready yet. It's important to pass that error up so device will get probed later.

---
 drivers/mtd/nand/raw/brcmnand/brcmnand.c | 2 ++
 1 file changed, 2 insertions(+)
drivers/mtd/nand/raw/brcmnand/brcmnand.c +0 -0
index 39661e23d7d4..cca2b153ae26 100644

drivers/mtd/nand/raw/brcmnand/brcmnand.c int brcmnand_probe(struct platform_device *pdev, struct brcmnand_soc *soc) · line 3249

Quoted 5 lines
drivers/mtd/nand/raw/brcmnand/brcmnand.c +2 -0
@@ -3245,6 +3245,8 @@ int brcmnand_probe(struct platform_device *pdev, struct brcmnand_soc *soc)
 
 			ret = brcmnand_init_cs(host, NULL);
 			if (ret) {
+				if (ret == -EPROBE_DEFER)
+					goto err;

Don't we need an of_node_put(child) here?

drivers/mtd/nand/raw/brcmnand/brcmnand.c int brcmnand_probe(struct platform_device *pdev, struct brcmnand_soc *soc) · line 3252

Quoted 3 lines
drivers/mtd/nand/raw/brcmnand/brcmnand.c +0 -0
 				devm_kfree(dev, host);
 				continue; /* Try all chip-selects */
 			}

Thanks,
Miquèl

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

#2 lore raw
Quoted 21 lines · Miquel Raynal

Hi Rafał,

[email protected] wrote on Tue, 18 Jul 2023 18:33:31 +0200:

Quoted 17 lines

From: Rafał Miłecki <[email protected]>

MTD subsystem may return -EPROBE_DEFER if something isn't ready yet. It's important to pass that error up so device will get probed later.

---
 drivers/mtd/nand/raw/brcmnand/brcmnand.c | 2 ++
 1 file changed, 2 insertions(+)
drivers/mtd/nand/raw/brcmnand/brcmnand.c +0 -0
index 39661e23d7d4..cca2b153ae26 100644
@@ -3245,6 +3245,8 @@ int brcmnand_probe(struct platform_device *pdev, 
 struct brcmnand_soc *soc)
 
Quoted 6 lines

drivers/mtd/nand/raw/brcmnand/brcmnand.c int brcmnand_probe(struct platform_device *pdev, struct brcmnand_soc *soc) · line 3249

Quoted 4 lines
drivers/mtd/nand/raw/brcmnand/brcmnand.c +2 -0
 			ret = brcmnand_init_cs(host, NULL);
 			if (ret) {
+				if (ret == -EPROBE_DEFER)
+					goto err;

Don't we need an of_node_put(child) here?

Good catch!

Quoted 7 lines
Quoted 3 lines
drivers/mtd/nand/raw/brcmnand/brcmnand.c +0 -0
 				devm_kfree(dev, host);
 				continue; /* Try all chip-selects */

}

Thanks,
Miquèl

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/