aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mm/ioremap.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mm/ioremap.c')
-rw-r--r--arch/arm/mm/ioremap.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/arch/arm/mm/ioremap.c b/arch/arm/mm/ioremap.c
index 20e4454e452e..52e5a4d28eb7 100644
--- a/arch/arm/mm/ioremap.c
+++ b/arch/arm/mm/ioremap.c
@@ -333,15 +333,14 @@ __arm_ioremap(unsigned long phys_addr, size_t size, unsigned int mtype)
333} 333}
334EXPORT_SYMBOL(__arm_ioremap); 334EXPORT_SYMBOL(__arm_ioremap);
335 335
336void __iounmap(volatile void __iomem *addr) 336void __iounmap(volatile void __iomem *io_addr)
337{ 337{
338 void *addr = (void *)(PAGE_MASK & (unsigned long)io_addr);
338#ifndef CONFIG_SMP 339#ifndef CONFIG_SMP
339 struct vm_struct **p, *tmp; 340 struct vm_struct **p, *tmp;
340#endif 341#endif
341 unsigned int section_mapping = 0; 342 unsigned int section_mapping = 0;
342 343
343 addr = (volatile void __iomem *)(PAGE_MASK & (unsigned long)addr);
344
345#ifndef CONFIG_SMP 344#ifndef CONFIG_SMP
346 /* 345 /*
347 * If this is a section based mapping we need to handle it 346 * If this is a section based mapping we need to handle it
@@ -352,7 +351,7 @@ void __iounmap(volatile void __iomem *addr)
352 */ 351 */
353 write_lock(&vmlist_lock); 352 write_lock(&vmlist_lock);
354 for (p = &vmlist ; (tmp = *p) ; p = &tmp->next) { 353 for (p = &vmlist ; (tmp = *p) ; p = &tmp->next) {
355 if((tmp->flags & VM_IOREMAP) && (tmp->addr == addr)) { 354 if ((tmp->flags & VM_IOREMAP) && (tmp->addr == addr)) {
356 if (tmp->flags & VM_ARM_SECTION_MAPPING) { 355 if (tmp->flags & VM_ARM_SECTION_MAPPING) {
357 *p = tmp->next; 356 *p = tmp->next;
358 unmap_area_sections((unsigned long)tmp->addr, 357 unmap_area_sections((unsigned long)tmp->addr,
@@ -367,6 +366,6 @@ void __iounmap(volatile void __iomem *addr)
367#endif 366#endif
368 367
369 if (!section_mapping) 368 if (!section_mapping)
370 vunmap((void __force *)addr); 369 vunmap(addr);
371} 370}
372EXPORT_SYMBOL(__iounmap); 371EXPORT_SYMBOL(__iounmap);