mtd: rawnand: s3c2410: enhance the probe function error path
authorMiquel Raynal <miquel.raynal@bootlin.com>
Wed, 21 Mar 2018 13:01:57 +0000 (14:01 +0100)
committerBoris Brezillon <boris.brezillon@bootlin.com>
Thu, 29 Mar 2018 07:38:21 +0000 (09:38 +0200)
Prepare the migration of the lpc32xx_slc driver to use nand_scan() by
cleaning the error path in the probe function.

Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
drivers/mtd/nand/raw/s3c2410.c

index b5bc5f106c0930041c6947d465d8917dbb2edbb9..1bc0458063d8e300388d7ebf38ff6ea3c7067012 100644 (file)
@@ -124,13 +124,11 @@ struct s3c2410_nand_info;
  * @chip: The NAND chip information.
  * @set: The platform information supplied for this set of NAND chips.
  * @info: Link back to the hardware information.
- * @scan_res: The result from calling nand_scan_ident().
 */
 struct s3c2410_nand_mtd {
        struct nand_chip                chip;
        struct s3c2410_nand_set         *set;
        struct s3c2410_nand_info        *info;
-       int                             scan_res;
 };
 
 enum s3c_cpu_type {
@@ -1163,17 +1161,19 @@ static int s3c24xx_nand_probe(struct platform_device *pdev)
                mtd->dev.parent = &pdev->dev;
                s3c2410_nand_init_chip(info, nmtd, sets);
 
-               nmtd->scan_res = nand_scan_ident(mtd,
-                                                (sets) ? sets->nr_chips : 1,
-                                                NULL);
+               err = nand_scan_ident(mtd, (sets) ? sets->nr_chips : 1, NULL);
+               if (err)
+                       goto exit_error;
 
-               if (nmtd->scan_res == 0) {
-                       err = s3c2410_nand_update_chip(info, nmtd);
-                       if (err < 0)
-                               goto exit_error;
-                       nand_scan_tail(mtd);
-                       s3c2410_nand_add_partition(info, nmtd, sets);
-               }
+               err = s3c2410_nand_update_chip(info, nmtd);
+               if (err < 0)
+                       goto exit_error;
+
+               err = nand_scan_tail(mtd);
+               if (err)
+                       goto exit_error;
+
+               s3c2410_nand_add_partition(info, nmtd, sets);
 
                if (sets != NULL)
                        sets++;