* [PATCH] mtd: rawnand: ingenic: handle ECC clock enable failures
@ 2026-06-15 6:33 Pengpeng Hou
2026-06-29 14:39 ` Miquel Raynal
0 siblings, 1 reply; 2+ messages in thread
From: Pengpeng Hou @ 2026-06-15 6:33 UTC (permalink / raw)
To: Paul Cercueil, Harvey Hunt, Miquel Raynal, Richard Weinberger,
Vignesh Raghavendra, linux-mips, linux-mtd, linux-kernel
Cc: pengpeng
ingenic_ecc_get() obtains a provider device reference and then enables
the ECC clock before returning the ECC handle.
The clk_prepare_enable() return value is currently ignored. If enabling
the clock fails, the function still returns the ECC handle and keeps the
provider device reference even though the acquire operation did not
complete.
Return the clock enable error and drop the provider device reference on
that failure path.
Signed-off-by: Pengpeng Hou <pengpeng@iscas.ac.cn>
---
drivers/mtd/nand/raw/ingenic/ingenic_ecc.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/mtd/nand/raw/ingenic/ingenic_ecc.c b/drivers/mtd/nand/raw/ingenic/ingenic_ecc.c
index 525c34c281b6..beb033705cf3 100644
--- a/drivers/mtd/nand/raw/ingenic/ingenic_ecc.c
+++ b/drivers/mtd/nand/raw/ingenic/ingenic_ecc.c
@@ -67,6 +67,7 @@ static struct ingenic_ecc *ingenic_ecc_get(struct device_node *np)
{
struct platform_device *pdev;
struct ingenic_ecc *ecc;
+ int ret;
pdev = of_find_device_by_node(np);
if (!pdev)
@@ -78,7 +79,11 @@ static struct ingenic_ecc *ingenic_ecc_get(struct device_node *np)
}
ecc = platform_get_drvdata(pdev);
- clk_prepare_enable(ecc->clk);
+ ret = clk_prepare_enable(ecc->clk);
+ if (ret) {
+ put_device(&pdev->dev);
+ return ERR_PTR(ret);
+ }
return ecc;
}
--
2.50.1 (Apple Git-155)
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [PATCH] mtd: rawnand: ingenic: handle ECC clock enable failures
2026-06-15 6:33 [PATCH] mtd: rawnand: ingenic: handle ECC clock enable failures Pengpeng Hou
@ 2026-06-29 14:39 ` Miquel Raynal
0 siblings, 0 replies; 2+ messages in thread
From: Miquel Raynal @ 2026-06-29 14:39 UTC (permalink / raw)
To: Paul Cercueil, Harvey Hunt, Richard Weinberger,
Vignesh Raghavendra, linux-mips, linux-mtd, linux-kernel,
Pengpeng Hou
On Mon, 15 Jun 2026 14:33:32 +0800, Pengpeng Hou wrote:
> ingenic_ecc_get() obtains a provider device reference and then enables
> the ECC clock before returning the ECC handle.
>
> The clk_prepare_enable() return value is currently ignored. If enabling
> the clock fails, the function still returns the ECC handle and keeps the
> provider device reference even though the acquire operation did not
> complete.
>
> [...]
Applied to mtd/fixes, thanks!
[1/1] mtd: rawnand: ingenic: handle ECC clock enable failures
commit: 1a8b2951ba3c35824ff4df0ea7d9f7a554c964a2
Patche(s) should be available on mtd/linux.git and will be
part of the next PR (provided that no robot complains by then).
Kind regards,
Miquèl
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-06-29 14:39 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-15 6:33 [PATCH] mtd: rawnand: ingenic: handle ECC clock enable failures Pengpeng Hou
2026-06-29 14:39 ` Miquel Raynal
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox