Skip to content

Commit

Permalink
[MTD] mtdpart: Make all partition parsers return allocated array
Browse files Browse the repository at this point in the history
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: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
  • Loading branch information
Atsushi Nemoto authored and David Woodhouse committed Mar 20, 2009
1 parent bd50a0f commit 17b536c
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 3 deletions.
6 changes: 4 additions & 2 deletions drivers/mtd/ar7part.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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;
Expand Down
6 changes: 5 additions & 1 deletion drivers/mtd/cmdlinepart.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
}
Expand Down

0 comments on commit 17b536c

Please sign in to comment.