diff options
author | Mike Frysinger <vapier@gentoo.org> | 2009-06-02 00:06:23 -0400 |
---|---|---|
committer | David Woodhouse <David.Woodhouse@intel.com> | 2009-06-05 18:35:44 +0100 |
commit | 4938c88c922fad23f0a9f404eeda0207a819e4df (patch) | |
tree | f4ba97c4721f421fb172e8ce237da846c4928a18 /drivers/mtd/maps | |
parent | 9f31f4b9dccf6fa4a606ae04602ec232b94727fb (diff) | |
download | linux-3.10-4938c88c922fad23f0a9f404eeda0207a819e4df.tar.gz linux-3.10-4938c88c922fad23f0a9f404eeda0207a819e4df.tar.bz2 linux-3.10-4938c88c922fad23f0a9f404eeda0207a819e4df.zip |
mtd: maps: Blackfin async: fix memory leaks in probe/remove funcs
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Bryan Wu <cooloney@kernel.org>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Diffstat (limited to 'drivers/mtd/maps')
-rw-r--r-- | drivers/mtd/maps/bfin-async-flash.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/mtd/maps/bfin-async-flash.c b/drivers/mtd/maps/bfin-async-flash.c index 576611f605d..365c77b1b87 100644 --- a/drivers/mtd/maps/bfin-async-flash.c +++ b/drivers/mtd/maps/bfin-async-flash.c @@ -40,6 +40,9 @@ struct async_state { uint32_t flash_ambctl0, flash_ambctl1; uint32_t save_ambctl0, save_ambctl1; unsigned long irq_flags; +#ifdef CONFIG_MTD_PARTITIONS + struct mtd_partition *parts; +#endif }; static void switch_to_flash(struct async_state *state) @@ -170,6 +173,7 @@ static int __devinit bfin_flash_probe(struct platform_device *pdev) if (ret > 0) { pr_devinit(KERN_NOTICE DRIVER_NAME ": Using commandline partition definition\n"); add_mtd_partitions(state->mtd, pdata->parts, ret); + state->parts = pdata->parts; } else if (pdata->nr_parts) { pr_devinit(KERN_NOTICE DRIVER_NAME ": Using board partition definition\n"); @@ -193,6 +197,7 @@ static int __devexit bfin_flash_remove(struct platform_device *pdev) gpio_free(state->enet_flash_pin); #ifdef CONFIG_MTD_PARTITIONS del_mtd_partitions(state->mtd); + kfree(state->parts); #endif map_destroy(state->mtd); kfree(state); |