mtd: Create partname and partid debug files for child MTDs
authorPetr Malat <oss@malat.biz>
Fri, 30 Apr 2021 06:50:57 +0000 (08:50 +0200)
committerMiquel Raynal <miquel.raynal@bootlin.com>
Mon, 10 May 2021 10:48:45 +0000 (12:48 +0200)
Partname and partid are set by the upper driver (spi-nor) on the master
MTD. If this MTD is partitioned and CONFIG_MTD_PARTITIONED_MASTER is
disabled, the master MTD is not instantiated and partname and partid
aren't available to the userspace.

Always read the partname and partid from the master MTD, they describe
the HW, which can't differ between master and its children.

Signed-off-by: Petr Malat <oss@malat.biz>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20210430065057.32018-1-oss@malat.biz
drivers/mtd/mtdcore.c

index 3f2e20e22501a69554570dc9d3907ade37c1a460..3ae261661eea2291b2c750f4a0f0f3b484002e96 100644 (file)
@@ -360,6 +360,7 @@ static struct dentry *dfs_dir_mtd;
 
 static void mtd_debugfs_populate(struct mtd_info *mtd)
 {
+       struct mtd_info *master = mtd_get_master(mtd);
        struct device *dev = &mtd->dev;
        struct dentry *root;
 
@@ -369,12 +370,12 @@ static void mtd_debugfs_populate(struct mtd_info *mtd)
        root = debugfs_create_dir(dev_name(dev), dfs_dir_mtd);
        mtd->dbg.dfs_dir = root;
 
-       if (mtd->dbg.partid)
-               debugfs_create_file("partid", 0400, root, mtd,
+       if (master->dbg.partid)
+               debugfs_create_file("partid", 0400, root, master,
                                    &mtd_partid_debug_fops);
 
-       if (mtd->dbg.partname)
-               debugfs_create_file("partname", 0400, root, mtd,
+       if (master->dbg.partname)
+               debugfs_create_file("partname", 0400, root, master,
                                    &mtd_partname_debug_fops);
 }