--- a/drivers/mtd/maps/physmap.c +++ b/drivers/mtd/maps/physmap.c @@ -170,6 +170,13 @@ static int physmap_flash_probe(struct pl goto err_out; #ifdef CONFIG_MTD_PARTITIONS + if (physmap_data->nr_parts) { + printk(KERN_NOTICE "Using physmap partition information\n"); + add_mtd_partitions(info->cmtd, physmap_data->parts, + physmap_data->nr_parts); + return 0; + } + err = parse_mtd_partitions(info->cmtd, part_probe_types, &info->parts, 0); if (err > 0) { @@ -177,13 +184,6 @@ static int physmap_flash_probe(struct pl info->nr_parts = err; return 0; } - - if (physmap_data->nr_parts) { - printk(KERN_NOTICE "Using physmap partition information\n"); - add_mtd_partitions(info->cmtd, physmap_data->parts, - physmap_data->nr_parts); - return 0; - } #endif add_mtd_device(info->cmtd);