Procházet zdrojové kódy

kernel: backport patch to relax mtdblock NAND warning

Instead of warning loudly about mtdblock devices being created, rather
just warn if they are actually used.

Signed-off-by: Daniel Golle <[email protected]>
Daniel Golle před 3 roky
rodič
revize
27fac9c08f

+ 82 - 0
target/linux/generic/backport-5.15/400-mtdblock-warn-if-opened-on-NAND.patch

@@ -0,0 +1,82 @@
+From 96a3295c351da82d7af99b2fc004a3cf9f4716a9 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Bj=C3=B8rn=20Mork?= <[email protected]>
+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 <[email protected]>
+Reviewed-by: Ezequiel Garcia <[email protected]>
+Signed-off-by: Miquel Raynal <[email protected]>
+Link: https://lore.kernel.org/linux-mtd/[email protected]
+---
+ 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);
+ }