diff options
author | Luis Henriques <henrix@camandro.org> | 2016-11-23 18:40:36 -0500 |
---|---|---|
committer | Brian Norris <computersforpeace@gmail.com> | 2016-11-30 21:30:24 -0500 |
commit | 3502fbcc25eb67db96fea35abe721c82aa1f4ff3 (patch) | |
tree | b2e83f7a028bf70f05b4c2c9756a4aff562570d1 | |
parent | 5fed67df878b598c3a4afdd4c09e9bea491651dd (diff) |
mtd: maps: add missing iounmap() in error path
This patch was triggered by the following Coccinelle error:
./drivers/mtd/maps/sc520cdp.c:246:3-9: \
ERROR: missing iounmap; ioremap on line 242 \
and execution via conditional on line 244
Since do_map_probe() is also invoked in this loop, it is also necessary to
map_destroy() any initialised struct mtd_info.
Signed-off-by: Luis Henriques <henrix@camandro.org>
Reviewed-by: Marek Vasut <marek.vasut@gmail.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
-rw-r--r-- | drivers/mtd/maps/sc520cdp.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/mtd/maps/sc520cdp.c b/drivers/mtd/maps/sc520cdp.c index 093edd51bdc7..9b1c13aa9f20 100644 --- a/drivers/mtd/maps/sc520cdp.c +++ b/drivers/mtd/maps/sc520cdp.c | |||
@@ -227,7 +227,7 @@ static void sc520cdp_setup_par(void) | |||
227 | 227 | ||
228 | static int __init init_sc520cdp(void) | 228 | static int __init init_sc520cdp(void) |
229 | { | 229 | { |
230 | int i, devices_found = 0; | 230 | int i, j, devices_found = 0; |
231 | 231 | ||
232 | #ifdef REPROGRAM_PAR | 232 | #ifdef REPROGRAM_PAR |
233 | /* reprogram PAR registers so flash appears at the desired addresses */ | 233 | /* reprogram PAR registers so flash appears at the desired addresses */ |
@@ -243,6 +243,12 @@ static int __init init_sc520cdp(void) | |||
243 | 243 | ||
244 | if (!sc520cdp_map[i].virt) { | 244 | if (!sc520cdp_map[i].virt) { |
245 | printk("Failed to ioremap_nocache\n"); | 245 | printk("Failed to ioremap_nocache\n"); |
246 | for (j = 0; j < i; j++) { | ||
247 | if (mymtd[j]) { | ||
248 | map_destroy(mymtd[j]); | ||
249 | iounmap(sc520cdp_map[j].virt); | ||
250 | } | ||
251 | } | ||
246 | return -EIO; | 252 | return -EIO; |
247 | } | 253 | } |
248 | 254 | ||