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

Commit 438db5a9 authored by Shmulik Ladkani's avatar Shmulik Ladkani Committed by Artem Bityutskiy
Browse files

mtd: cmdlinepart: Simplify parse_cmdline_partitions



Simply 'parse_cmdline_partitions': the outer loop iterating over
'partitions' is actually a search loop, it does not execute the inner
loop for each partition, only for the matched partition.

Let's break when search is successful, and move all inner code (relevant
only for the matched partition) outside of the outer loop.

Resulting code is much more readable, and makes the indent level sane.

Signed-off-by: default avatarShmulik Ladkani <shmulik.ladkani@gmail.com>
Signed-off-by: default avatarArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
parent 6924d99f
Loading
Loading
Loading
Loading
+42 −38
Original line number Diff line number Diff line
@@ -308,8 +308,18 @@ static int parse_cmdline_partitions(struct mtd_info *master,
			return err;
	}

	/*
	 * Search for the partition definition matching master->name.
	 * If master->name is not set, stop at first partition definition.
	 */
	for (part = partitions; part; part = part->next) {
		if ((!mtd_id) || (!strcmp(part->mtd_id, mtd_id))) {
		if ((!mtd_id) || (!strcmp(part->mtd_id, mtd_id)))
			break;
	}

	if (!part)
		return 0;

	for (i = 0, offset = 0; i < part->num_parts; i++) {
		if (part->parts[i].offset == OFFSET_CONTINUOUS)
			part->parts[i].offset = offset;
@@ -324,8 +334,7 @@ static int parse_cmdline_partitions(struct mtd_info *master,
			       "%s: skipping zero sized partition\n",
			       part->mtd_id);
			part->num_parts--;
					memmove(&part->parts[i],
						&part->parts[i + 1],
			memmove(&part->parts[i], &part->parts[i + 1],
				sizeof(*part->parts) * (part->num_parts - i));
			continue;
		}
@@ -339,18 +348,13 @@ static int parse_cmdline_partitions(struct mtd_info *master,
		offset += part->parts[i].size;
	}

			*pparts = kmemdup(part->parts,
					sizeof(*part->parts) * part->num_parts,
	*pparts = kmemdup(part->parts, sizeof(*part->parts) * part->num_parts,
			  GFP_KERNEL);
	if (!*pparts)
		return -ENOMEM;

	return part->num_parts;
}
	}

	return 0;
}


/*