mtd: rawnand: oxnas: Release all devices in the _remove() path
authorMiquel Raynal <miquel.raynal@bootlin.com>
Tue, 19 May 2020 13:00:11 +0000 (15:00 +0200)
committerMiquel Raynal <miquel.raynal@bootlin.com>
Sun, 31 May 2020 08:53:35 +0000 (10:53 +0200)
oxnans_nand_remove() should release all MTD devices and clean all NAND
devices, not only the first one registered.

Fixes: 668592492409 ("mtd: nand: Add OX820 NAND Support")
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20200519130035.1883-39-miquel.raynal@bootlin.com
drivers/mtd/nand/raw/oxnas_nand.c

index 25862d6..23c222b 100644 (file)
@@ -177,9 +177,13 @@ err_clk_unprepare:
 static int oxnas_nand_remove(struct platform_device *pdev)
 {
        struct oxnas_nand_ctrl *oxnas = platform_get_drvdata(pdev);
+       struct nand_chip *chip;
+       int i;
 
-       if (oxnas->chips[0])
-               nand_release(oxnas->chips[0]);
+       for (i = 0; i < oxnas->nchips; i++) {
+               chip = oxnas->chips[i];
+               nand_release(chip);
+       }
 
        clk_disable_unprepare(oxnas->clk);