kernel: backport patch to relax mtdblock NAND warning
authorDaniel Golle <daniel@makrotopia.org>
Sat, 30 Apr 2022 13:24:41 +0000 (14:24 +0100)
committerDaniel Golle <daniel@makrotopia.org>
Sat, 30 Apr 2022 14:59:59 +0000 (15:59 +0100)
Instead of warning loudly about mtdblock devices being created, rather
just warn if they are actually used.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
target/linux/generic/backport-5.15/400-mtdblock-warn-if-opened-on-NAND.patch [new file with mode: 0644]

diff --git a/target/linux/generic/backport-5.15/400-mtdblock-warn-if-opened-on-NAND.patch b/target/linux/generic/backport-5.15/400-mtdblock-warn-if-opened-on-NAND.patch
new file mode 100644 (file)
index 0000000..27c0e6c
--- /dev/null
@@ -0,0 +1,82 @@
+From 96a3295c351da82d7af99b2fc004a3cf9f4716a9 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Bj=C3=B8rn=20Mork?= <bjorn@mork.no>
+Date: Mon, 28 Mar 2022 18:11:08 +0200
+Subject: [PATCH] mtdblock: warn if opened on NAND
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Warning on every translated mtd partition results in excessive log noise
+if this driver is loaded:
+
+  nand: device found, Manufacturer ID: 0xc2, Chip ID: 0xf1
+  nand: Macronix MX30LF1G18AC
+  nand: 128 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
+  mt7621-nand 1e003000.nand: ECC strength adjusted to 4 bits
+  read_bbt: found bbt at block 1023
+  10 fixed-partitions partitions found on MTD device mt7621-nand
+  Creating 10 MTD partitions on "mt7621-nand":
+  0x000000000000-0x000000080000 : "Bootloader"
+  mtdblock: MTD device 'Bootloader' is NAND, please consider using UBI block devices instead.
+  0x000000080000-0x000000100000 : "Config"
+  mtdblock: MTD device 'Config' is NAND, please consider using UBI block devices instead.
+  0x000000100000-0x000000140000 : "Factory"
+  mtdblock: MTD device 'Factory' is NAND, please consider using UBI block devices instead.
+  0x000000140000-0x000002000000 : "Kernel"
+  mtdblock: MTD device 'Kernel' is NAND, please consider using UBI block devices instead.
+  0x000000540000-0x000002000000 : "ubi"
+  mtdblock: MTD device 'ubi' is NAND, please consider using UBI block devices instead.
+  0x000002140000-0x000004000000 : "Kernel2"
+  mtdblock: MTD device 'Kernel2' is NAND, please consider using UBI block devices instead.
+  0x000004000000-0x000004100000 : "wwan"
+  mtdblock: MTD device 'wwan' is NAND, please consider using UBI block devices instead.
+  0x000004100000-0x000005100000 : "data"
+  mtdblock: MTD device 'data' is NAND, please consider using UBI block devices instead.
+  0x000005100000-0x000005200000 : "rom-d"
+  mtdblock: MTD device 'rom-d' is NAND, please consider using UBI block devices instead.
+  0x000005200000-0x000005280000 : "reserve"
+  mtdblock: MTD device 'reserve' is NAND, please consider using UBI block devices instead.
+  mtk_soc_eth 1e100000.ethernet eth0: mediatek frame engine at 0xbe100000, irq 21
+
+This is more likely to annoy than to help users of embedded distros where
+this driver is enabled by default.  Making the blockdevs available does
+not imply that they are in use, and warning about bootloader partitions
+or other devices which obviously never will be mounted is more confusing
+than helpful.
+
+Move the warning to open(), where it will be of more use - actually warning
+anyone who mounts a file system on NAND using mtdblock.
+
+Fixes: e07403a8c6be ("mtdblock: Warn if added for a NAND device")
+Signed-off-by: Bjørn Mork <bjorn@mork.no>
+Reviewed-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
+Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
+Link: https://lore.kernel.org/linux-mtd/20220328161108.87757-1-bjorn@mork.no
+---
+ drivers/mtd/mtdblock.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+--- a/drivers/mtd/mtdblock.c
++++ b/drivers/mtd/mtdblock.c
+@@ -257,6 +257,10 @@ static int mtdblock_open(struct mtd_blkt
+               return 0;
+       }
++      if (mtd_type_is_nand(mbd->mtd))
++              pr_warn("%s: MTD device '%s' is NAND, please consider using UBI block devices instead.\n",
++                      mbd->tr->name, mbd->mtd->name);
++
+       /* OK, it's not open. Create cache info for it */
+       mtdblk->count = 1;
+       mutex_init(&mtdblk->cache_mutex);
+@@ -322,10 +326,6 @@ static void mtdblock_add_mtd(struct mtd_
+       if (!(mtd->flags & MTD_WRITEABLE))
+               dev->mbd.readonly = 1;
+-      if (mtd_type_is_nand(mtd))
+-              pr_warn("%s: MTD device '%s' is NAND, please consider using UBI block devices instead.\n",
+-                      tr->name, mtd->name);
+-
+       if (add_mtd_blktrans_dev(&dev->mbd))
+               kfree(dev);
+ }