Thread (5 messages) 5 messages, 3 authors, 2021-12-03

[PATCH/RFC -nxt] mtd_blkdevs: Set GENHD_FL_NO_PART

From: Geert Uytterhoeven <geert+renesas@glider.be>
Date: 2021-11-30 16:24:00
Also in: linux-renesas-soc, lkml
Subsystem: memory technology devices (mtd), the rest · Maintainers: Miquel Raynal, Richard Weinberger, Vignesh Raghavendra, Linus Torvalds

When DT declares the partitions of an spi-nor device using
"fixed-partitions", the individual mtdblockN partitions are now scanned
for partitition tables, which should not happen.

Fix this by setting the GENHD_FL_NO_PART flag in the MTD block layer
interface.

Fixes: 1ebe2e5f9d68e94c ("block: remove GENHD_FL_EXT_DEVT")
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
Seen with e.g. arch/arm/boot/dts/r8a7791-koelsch.dts.
I only noticed because I have debug code to measure QSPI performance,
which informed me about 8 x 512 bytes being read from each partition
detected.

RFC as I'm not sure this is correct in all cases.
I did verify that in the absence of "fixed-partitions", the spi-nor
device is not scanned for partitions before and after commit
1ebe2e5f9d68e94c.
---
 drivers/mtd/mtd_blkdevs.c | 1 +
 1 file changed, 1 insertion(+)
diff --git a/drivers/mtd/mtd_blkdevs.c b/drivers/mtd/mtd_blkdevs.c
index 113f86df76038575..95c84faa794d22c6 100644
--- a/drivers/mtd/mtd_blkdevs.c
+++ b/drivers/mtd/mtd_blkdevs.c
@@ -345,6 +345,7 @@ int add_mtd_blktrans_dev(struct mtd_blktrans_dev *new)
 	gd->first_minor = (new->devnum) << tr->part_bits;
 	gd->minors = 1 << tr->part_bits;
 	gd->fops = &mtd_block_ops;
+	gd->flags |= GENHD_FL_NO_PART;
 
 	if (tr->part_bits)
 		if (new->devnum < 26)
-- 
2.25.1
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help