1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- From 01f9c7240a900d5676a8496496f2974dd36996b1 Mon Sep 17 00:00:00 2001
- From: Brian Norris <computersforpeace@gmail.com>
- Date: Tue, 23 May 2017 07:30:20 +0200
- Subject: [PATCH] mtd: partitions: factor out code calling parser
- MIME-Version: 1.0
- Content-Type: text/plain; charset=UTF-8
- Content-Transfer-Encoding: 8bit
- 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@gmail.com>
- Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
- Acked-by: Brian Norris <computersforpeace@gmail.com>
- ---
- drivers/mtd/mtdpart.c | 33 ++++++++++++++++++++++++---------
- 1 file changed, 24 insertions(+), 9 deletions(-)
- --- a/drivers/mtd/mtdpart.c
- +++ b/drivers/mtd/mtdpart.c
- @@ -807,6 +807,27 @@ static const char * const default_mtd_pa
- 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)
- @@ -847,16 +868,10 @@ int parse_mtd_partitions(struct mtd_info
- 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
|