[PATCH RESEND 2/4] mtd: partitions: factor out code calling parser
Brian Norris
computersforpeace at gmail.com
Thu Apr 20 16:45:34 PDT 2017
On Thu, Apr 20, 2017 at 03:57:29PM +0200, Rafał Miłecki wrote:
> From: Brian Norris <computersforpeace at gmail.com>
>
> This code is going to be reused for parsers matched using OF so let's
> factor it out to make this easier.
>
> Signed-off-by: Brian Norris <computersforpeace at gmail.com>
> Signed-off-by: Rafał Miłecki <rafal at milecki.pl>
> ---
Could have used a changelog to note dropping the
mtd_part_parser_get_by_name() refactoring. Also the corresponding change
in subject (from "mtd: partitions: factor out "match by name"
handling").
But this seems fine to me.
Acked-by: Brian Norris <computersforpeace at gmail.com>
> drivers/mtd/mtdpart.c | 33 ++++++++++++++++++++++++---------
> 1 file changed, 24 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/mtd/mtdpart.c b/drivers/mtd/mtdpart.c
> index 81e0b80237df..73c52f1a2e4c 100644
> --- a/drivers/mtd/mtdpart.c
> +++ b/drivers/mtd/mtdpart.c
> @@ -840,6 +840,27 @@ static const char * const default_mtd_part_types[] = {
> NULL
> };
>
> +static int mtd_part_do_parse(struct mtd_part_parser *parser,
> + struct mtd_info *master,
> + struct mtd_partitions *pparts,
> + struct mtd_part_parser_data *data)
> +{
> + int ret;
> +
> + ret = (*parser->parse_fn)(master, &pparts->parts, data);
> + pr_debug("%s: parser %s: %i\n", master->name, parser->name, ret);
> + if (ret <= 0)
> + return ret;
> +
> + pr_notice("%d %s partitions found on MTD device %s\n", ret,
> + parser->name, master->name);
> +
> + pparts->nr_parts = ret;
> + pparts->parser = parser;
> +
> + return ret;
> +}
> +
> /**
> * parse_mtd_partitions - parse MTD partitions
> * @master: the master partition (describes whole MTD device)
> @@ -880,16 +901,10 @@ int parse_mtd_partitions(struct mtd_info *master, const char *const *types,
> parser ? parser->name : NULL);
> if (!parser)
> continue;
> - ret = (*parser->parse_fn)(master, &pparts->parts, data);
> - pr_debug("%s: parser %s: %i\n",
> - master->name, parser->name, ret);
> - if (ret > 0) {
> - printk(KERN_NOTICE "%d %s partitions found on MTD device %s\n",
> - ret, parser->name, master->name);
> - pparts->nr_parts = ret;
> - pparts->parser = parser;
> + ret = mtd_part_do_parse(parser, master, pparts, data);
> + /* Found partitions! */
> + if (ret > 0)
> return 0;
> - }
> mtd_part_parser_put(parser);
> /*
> * Stash the first error we see; only report it if no parser
> --
> 2.11.0
>
More information about the linux-mtd
mailing list