diff options
Diffstat (limited to 'arch/arm/mm')
-rw-r--r-- | arch/arm/mm/fault-armv.c | 1 | ||||
-rw-r--r-- | arch/arm/mm/ioremap.c | 9 | ||||
-rw-r--r-- | arch/arm/mm/mmap.c | 1 |
3 files changed, 6 insertions, 5 deletions
diff --git a/arch/arm/mm/fault-armv.c b/arch/arm/mm/fault-armv.c index dbdb7b72f2c1..af6ed6ef9a81 100644 --- a/arch/arm/mm/fault-armv.c +++ b/arch/arm/mm/fault-armv.c | |||
@@ -17,6 +17,7 @@ | |||
17 | #include <linux/init.h> | 17 | #include <linux/init.h> |
18 | #include <linux/pagemap.h> | 18 | #include <linux/pagemap.h> |
19 | 19 | ||
20 | #include <asm/bugs.h> | ||
20 | #include <asm/cacheflush.h> | 21 | #include <asm/cacheflush.h> |
21 | #include <asm/cachetype.h> | 22 | #include <asm/cachetype.h> |
22 | #include <asm/pgtable.h> | 23 | #include <asm/pgtable.h> |
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 | } |
334 | EXPORT_SYMBOL(__arm_ioremap); | 334 | EXPORT_SYMBOL(__arm_ioremap); |
335 | 335 | ||
336 | void __iounmap(volatile void __iomem *addr) | 336 | void __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 | } |
372 | EXPORT_SYMBOL(__iounmap); | 371 | EXPORT_SYMBOL(__iounmap); |
diff --git a/arch/arm/mm/mmap.c b/arch/arm/mm/mmap.c index 28ead8393b5a..5358fcc7f61e 100644 --- a/arch/arm/mm/mmap.c +++ b/arch/arm/mm/mmap.c | |||
@@ -6,6 +6,7 @@ | |||
6 | #include <linux/mman.h> | 6 | #include <linux/mman.h> |
7 | #include <linux/shm.h> | 7 | #include <linux/shm.h> |
8 | #include <linux/sched.h> | 8 | #include <linux/sched.h> |
9 | #include <linux/io.h> | ||
9 | #include <asm/cputype.h> | 10 | #include <asm/cputype.h> |
10 | #include <asm/system.h> | 11 | #include <asm/system.h> |
11 | 12 | ||