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

Commit 17b536cc authored by Atsushi Nemoto's avatar Atsushi Nemoto Committed by David Woodhouse
Browse files

[MTD] mtdpart: Make all partition parsers return allocated array



Currently redboot and afx parser return allocated mtd_partition array
and cmdlinepart and ar7 return persistent array.

This patch make cmdlinepart and ar7 also return allocated array, so
that all users can free it regardless of parser type.

Signed-off-by: default avatarAtsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
parent bd50a0ff
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -44,8 +44,6 @@ struct ar7_bin_rec {
	unsigned int address;
};

static struct mtd_partition ar7_parts[AR7_PARTS];

static int create_mtd_partitions(struct mtd_info *master,
				 struct mtd_partition **pparts,
				 unsigned long origin)
@@ -57,7 +55,11 @@ static int create_mtd_partitions(struct mtd_info *master,
	unsigned int root_offset = ROOT_OFFSET;

	int retries = 10;
	struct mtd_partition *ar7_parts;

	ar7_parts = kzalloc(sizeof(*ar7_parts) * AR7_PARTS, GFP_KERNEL);
	if (!ar7_parts)
		return -ENOMEM;
	ar7_parts[0].name = "loader";
	ar7_parts[0].offset = 0;
	ar7_parts[0].size = master->erasesize;
+5 −1
Original line number Diff line number Diff line
@@ -335,7 +335,11 @@ static int parse_cmdline_partitions(struct mtd_info *master,
				}
				offset += part->parts[i].size;
			}
			*pparts = part->parts;
			*pparts = kmemdup(part->parts,
					sizeof(*part->parts) * part->num_parts,
					GFP_KERNEL);
			if (!*pparts)
				return -ENOMEM;
			return part->num_parts;
		}
	}