diff options
Diffstat (limited to 'drivers/mtd/mtdpart.c')
| -rw-r--r-- | drivers/mtd/mtdpart.c | 5 | 
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/mtd/mtdpart.c b/drivers/mtd/mtdpart.c index 3a49e6de5e6..70fa70a8318 100644 --- a/drivers/mtd/mtdpart.c +++ b/drivers/mtd/mtdpart.c @@ -711,6 +711,8 @@ static const char *default_mtd_part_types[] = {   * partition parsers, specified in @types. However, if @types is %NULL, then   * the default list of parsers is used. The default list contains only the   * "cmdlinepart" and "ofpart" parsers ATM. + * Note: If there are more then one parser in @types, the kernel only takes the + * partitions parsed out by the first parser.   *   * This function may return:   * o a negative error code in case of failure @@ -735,11 +737,12 @@ int parse_mtd_partitions(struct mtd_info *master, const char **types,  		if (!parser)  			continue;  		ret = (*parser->parse_fn)(master, pparts, data); +		put_partition_parser(parser);  		if (ret > 0) {  			printk(KERN_NOTICE "%d %s partitions found on MTD device %s\n",  			       ret, parser->name, master->name); +			break;  		} -		put_partition_parser(parser);  	}  	return ret;  }  |