kernel: bump 4.9 to 4.9.161
[openwrt/openwrt.git] / target / linux / generic / pending-4.9 / 490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch
index 8b923d17d6342e8fb2bb6b0aa5c041b3ccf5eeba..168cfe50ee4290f6df6f025167624de9d2c3bdfd 100644 (file)
@@ -8,7 +8,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 
 --- a/drivers/mtd/ubi/build.c
 +++ b/drivers/mtd/ubi/build.c
-@@ -1226,6 +1226,68 @@ static struct mtd_info * __init open_mtd
+@@ -1226,6 +1226,73 @@ static struct mtd_info * __init open_mtd
        return mtd;
  }
  
@@ -44,10 +44,15 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 +                      }
 +              }
 +
-+      /* check for a valid ubi magic if read from flash was successful */
++      /* check if the read from flash was successful */
 +      err = mtd_read(mtd, offset, 4, &len, (void *) magic);
-+      if ((!err || mtd_is_bitflip(err)) &&
-+          len == 4 && strncmp(magic, "UBI#", 4)) {
++      if ((err && !mtd_is_bitflip(err)) || len != 4) {
++              pr_err("UBI error: unable to read from mtd%d\n", mtd->index);
++              goto cleanup;
++      }
++
++      /* check for a valid ubi magic */
++      if (strncmp(magic, "UBI#", 4)) {
 +              pr_err("UBI error: no valid UBI magic found inside mtd%d\n", mtd->index);
 +              goto cleanup;
 +      }
@@ -77,7 +82,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  static int __init ubi_init(void)
  {
        int err, i, k;
-@@ -1309,6 +1371,12 @@ static int __init ubi_init(void)
+@@ -1309,6 +1376,12 @@ static int __init ubi_init(void)
                }
        }