On Fri, Mar 08, 2024 at 11:14:28AM +0100, Uwe Kleine-König wrote: > Hello, > > On Fri, Mar 08, 2024 at 10:27:21AM +0100, Ahmad Fatoum wrote: > > On 08.03.24 10:15, Uwe Kleine-König wrote: > > > From: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx> > > > > > > It was already noticed in commit 9d42c77f126e ("devfs: take into account > > > for the partitions check that mtd is different") that the partitioning > > > info is stored differently for mtd devices. Instead of only getting the > > > partion size from the right spot, use the right data completely. > > > > I read both this commit message and that of the referenced commit and I > > don't quite understand what the issue is. Could you add a short sentence > > about what particular issue this fix addresses? > > The situation fixed here is: > > After bootup the partitioning information for mtd devices exists in both > locations (cdev->partitions and cdev->mtd->partitions). An interactive > addpart only adds the the latter. This patch fixes the of fixup to also > use the latter. I don't think this is true. Looking at __devfs_add_partition() we have: if (IS_ENABLED(CONFIG_MTD) && cdev->mtd) { struct mtd_info *mtd; mtd = mtd_add_partition(cdev->mtd, offset, size, partinfo->flags, partinfo->name); if (IS_ERR(mtd)) return (void *)mtd; list_add_tail(&mtd->cdev.partition_entry, &cdev->partitions); return &mtd->cdev; } ... list_add_tail(&new->partition_entry, &cdev->partitions); So all partitions end up in the &cdev->partitions list. of_fixup_partitions() currently iterates over &cdev->partitions, but it has: if (!(partcdev->flags & DEVFS_PARTITION_FROM_OF)) continue; And I think this is your problem. The newly created partition is ignored during fixup because it doesn't have the DEVFS_PARTITION_FROM_OF flag set. What you do is a complicated way of ignoring this flag in your additional iteration over &cdev->partitions. Sascha -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |