Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 822e5e72 authored by Russell King's avatar Russell King Committed by Russell King
Browse files

[ARM] Fix MTD device/partition destruction



We should not delete MTD partitions when we registered a MTD
device.

Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 0d2ef7d7
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -137,6 +137,7 @@ struct sa_info {
	struct mtd_partition	*parts;
	struct mtd_info		*mtd;
	int			num_subdev;
	unsigned int		nr_parts;
	struct sa_subdev_info	subdev[0];
};

@@ -228,8 +229,12 @@ static void sa1100_destroy(struct sa_info *info, struct flash_platform_data *pla
	int i;

	if (info->mtd) {
		if (info->nr_parts == 0)
			del_mtd_device(info->mtd);
#ifdef CONFIG_MTD_PARTITIONS
		else
			del_mtd_partitions(info->mtd);

#endif
#ifdef CONFIG_MTD_CONCAT
		if (info->mtd != info->subdev[0].mtd)
			mtd_concat_destroy(info->mtd);
@@ -396,6 +401,8 @@ static int __init sa1100_mtd_probe(struct device *dev)
		add_mtd_partitions(info->mtd, parts, nr_parts);
	}

	info->nr_parts = nr_parts;

	dev_set_drvdata(dev, info);
	err = 0;