Skip to content

Commit ba1b71b

Browse files
Yuuoniymiquelraynal
authored andcommitted
mtd: rawnand: ingenic: Fix missing put_device in ingenic_ecc_get
If of_find_device_by_node() succeeds, ingenic_ecc_get() doesn't have a corresponding put_device(). Thus add put_device() to fix the exception handling. Fixes: 15de8c6 ("mtd: rawnand: ingenic: Separate top-level and SoC specific code") Signed-off-by: Miaoqian Lin <linmq006@gmail.com> Reviewed-by: Paul Cercueil <paul@crapouillou.net> Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Link: https://lore.kernel.org/linux-mtd/20211230072751.21622-1-linmq006@gmail.com
1 parent e783362 commit ba1b71b

1 file changed

Lines changed: 6 additions & 1 deletion

File tree

drivers/mtd/nand/raw/ingenic/ingenic_ecc.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,14 @@ static struct ingenic_ecc *ingenic_ecc_get(struct device_node *np)
6868
struct ingenic_ecc *ecc;
6969

7070
pdev = of_find_device_by_node(np);
71-
if (!pdev || !platform_get_drvdata(pdev))
71+
if (!pdev)
7272
return ERR_PTR(-EPROBE_DEFER);
7373

74+
if (!platform_get_drvdata(pdev)) {
75+
put_device(&pdev->dev);
76+
return ERR_PTR(-EPROBE_DEFER);
77+
}
78+
7479
ecc = platform_get_drvdata(pdev);
7580
clk_prepare_enable(ecc->clk);
7681

0 commit comments

Comments
 (0)