info->nr_parts = nr_parts;  
static int __init sa1100_mtd_probe(struct device *dev){	struct platform_device *pdev = to_platform_device(dev);	struct flash_platform_data *plat = pdev->dev.platform_data;	struct mtd_partition *parts;	const char *part_type = NULL;	struct sa_info *info;	int err, nr_parts = 0;	if (!plat)		return -ENODEV;	info = sa1100_setup_mtd(pdev, plat);	if (IS_ERR(info)) {		err = PTR_ERR(info);		goto out;	}	/*	 * Partition selection stuff.	 */#ifdef CONFIG_MTD_PARTITIONS	nr_parts = parse_mtd_partitions(info->mtd, part_probes, &parts, 0);	if (nr_parts > 0) {		info->parts = parts;		part_type = "dynamic";	} else#endif	{		parts = plat->parts;		nr_parts = plat->nr_parts;		part_type = "static";	}	if (nr_parts == 0) {		printk(KERN_NOTICE "SA1100 flash: no partition info "			"available, registering whole flash\n");		add_mtd_device(info->mtd);	} else {		printk(KERN_NOTICE "SA1100 flash: using %s partition "			"definition\n", part_type);		add_mtd_partitions(info->mtd, parts, nr_parts);	}	dev_set_drvdata(dev, info);	err = 0; out:	return err;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/822e5e72697ce06e4425c17d161b0482c7d9b6d4/sa1100-flash.c/clean/drivers/mtd/maps/sa1100-flash.c