diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-09-22 12:49:18 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-09-22 12:49:18 -0700 |
commit | a48178a2fa17beee17d7e6aeaa6ed2db5813552d (patch) | |
tree | 74579777d047478b3d62fcc3349a903b53515770 /drivers/mtd/maps/sbc8240.c | |
parent | 14d1adfc59ba66932ef167fdff62983e7c2b0197 (diff) | |
parent | 734a56285dbeedc6cc10aef6f700eeab7c65ea9f (diff) |
Merge git://git.infradead.org/mtd-2.6
* git://git.infradead.org/mtd-2.6:
Remove accidentally-added include/linux/utsrelease.h
Revert "[MTD] blkdev helper code: fix printk format warning"
[MTD] Add SSFDC (SmartMedia) read-only translation layer
[MTD] pmc551 pci cleanup
[MTD] pmc551 use kzalloc
[MTD] pmc551 whitespace cleanup
[MTD] Remove iq80310 map driver
[MTD NAND] Fix in typo ndfc.c causing wrong ECC layout
[MTD] physmap: add power management support
ioremap balanced with iounmap for drivers/mtd subsystem
[MTD] Switch to pci_get_device and do ref counting
[MTD] blkdev helper code: fix printk format warning
[MTD] Fix ixp4xx partition parsing.
[JFFS2] Remove unneeded ifdefs from jffs2_fs_i.h
[MTD NAND] Remove old code in au1550nd.c
[MTD] Unlock NOR flash automatically where necessary
Diffstat (limited to 'drivers/mtd/maps/sbc8240.c')
-rw-r--r-- | drivers/mtd/maps/sbc8240.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/mtd/maps/sbc8240.c b/drivers/mtd/maps/sbc8240.c index 7d0fcf8f4f3..b8c1331b7a0 100644 --- a/drivers/mtd/maps/sbc8240.c +++ b/drivers/mtd/maps/sbc8240.c @@ -156,7 +156,7 @@ int __init init_sbc8240_mtd (void) }; int devicesfound = 0; - int i; + int i,j; for (i = 0; i < NUM_FLASH_BANKS; i++) { printk (KERN_NOTICE MSG_PREFIX @@ -166,6 +166,10 @@ int __init init_sbc8240_mtd (void) (unsigned long) ioremap (pt[i].addr, pt[i].size); if (!sbc8240_map[i].map_priv_1) { printk (MSG_PREFIX "failed to ioremap\n"); + for (j = 0; j < i; j++) { + iounmap((void *) sbc8240_map[j].map_priv_1); + sbc8240_map[j].map_priv_1 = 0; + } return -EIO; } simple_map_init(&sbc8240_mtd[i]); @@ -175,6 +179,11 @@ int __init init_sbc8240_mtd (void) if (sbc8240_mtd[i]) { sbc8240_mtd[i]->module = THIS_MODULE; devicesfound++; + } else { + if (sbc8240_map[i].map_priv_1) { + iounmap((void *) sbc8240_map[i].map_priv_1); + sbc8240_map[i].map_priv_1 = 0; + } } } |