Skip to content

Commit

Permalink
[ARM] Fix MTD device/partition destruction
Browse files Browse the repository at this point in the history
We should not delete MTD partitions when we registered a MTD
device.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  • Loading branch information
Russell King authored and Russell King committed Oct 29, 2005
1 parent 0d2ef7d commit 822e5e7
Showing 1 changed file with 9 additions and 2 deletions.
11 changes: 9 additions & 2 deletions drivers/mtd/maps/sa1100-flash.c
Original file line number Diff line number Diff line change
Expand Up @@ -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];
};

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

if (info->mtd) {
del_mtd_partitions(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);
Expand Down Expand Up @@ -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;

Expand Down

0 comments on commit 822e5e7

Please sign in to comment.