Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6910c136 authored by Atsushi Nemoto's avatar Atsushi Nemoto Committed by David Woodhouse
Browse files

[MTD][MTDPART] Cleanup and document the erase region handling



Mostly simplifying the loops.  Now everything fits into 80 columns,
is easier to read and the finer details have extra comments.

Signed-off-by: default avatarJörn Engel <joern@logfs.org>
Signed-off-by: default avatarAtsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
parent b33a2887
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -424,18 +424,24 @@ static struct mtd_part *add_one_partition(struct mtd_info *master,
	}
	if (master->numeraseregions > 1) {
		/* Deal with variable erase size stuff */
		int i;
		int i, max = master->numeraseregions;
		u32 end = slave->offset + slave->mtd.size;
		struct mtd_erase_region_info *regions = master->eraseregions;

		/* Find the first erase regions which is part of this partition. */
		for (i = 0; i < master->numeraseregions && regions[i].offset <= slave->offset; i++)
		/* Find the first erase regions which is part of this
		 * partition. */
		for (i = 0; i < max && regions[i].offset <= slave->offset; i++)
			;
		/* The loop searched for the region _behind_ the first one */
		i--;

		for (i--; i < master->numeraseregions && regions[i].offset < slave->offset + slave->mtd.size; i++) {
		/* Pick biggest erasesize */
		for (; i < max && regions[i].offset < end; i++) {
			if (slave->mtd.erasesize < regions[i].erasesize) {
				slave->mtd.erasesize = regions[i].erasesize;
			}
		}
		BUG_ON(slave->mtd.erasesize == 0);
	} else {
		/* Single erase size */
		slave->mtd.erasesize = master->erasesize;