diff options
Diffstat (limited to 'arch/arm/mm')
-rw-r--r-- | arch/arm/mm/ioremap.c | 5 | ||||
-rw-r--r-- | arch/arm/mm/proc-arm1020.S | 2 | ||||
-rw-r--r-- | arch/arm/mm/proc-arm1020e.S | 2 | ||||
-rw-r--r-- | arch/arm/mm/proc-arm1022.S | 2 | ||||
-rw-r--r-- | arch/arm/mm/proc-arm1026.S | 2 | ||||
-rw-r--r-- | arch/arm/mm/proc-arm925.S | 3 |
6 files changed, 13 insertions, 3 deletions
diff --git a/arch/arm/mm/ioremap.c b/arch/arm/mm/ioremap.c index 7eac87f05180..dba7dddfe57d 100644 --- a/arch/arm/mm/ioremap.c +++ b/arch/arm/mm/ioremap.c | |||
@@ -303,7 +303,6 @@ __ioremap_pfn(unsigned long pfn, unsigned long offset, size_t size, | |||
303 | int err; | 303 | int err; |
304 | unsigned long addr; | 304 | unsigned long addr; |
305 | struct vm_struct * area; | 305 | struct vm_struct * area; |
306 | unsigned int cr = get_cr(); | ||
307 | 306 | ||
308 | /* | 307 | /* |
309 | * High mappings must be supersection aligned | 308 | * High mappings must be supersection aligned |
@@ -317,7 +316,7 @@ __ioremap_pfn(unsigned long pfn, unsigned long offset, size_t size, | |||
317 | addr = (unsigned long)area->addr; | 316 | addr = (unsigned long)area->addr; |
318 | 317 | ||
319 | #ifndef CONFIG_SMP | 318 | #ifndef CONFIG_SMP |
320 | if ((((cpu_architecture() >= CPU_ARCH_ARMv6) && (cr & CR_XP)) || | 319 | if ((((cpu_architecture() >= CPU_ARCH_ARMv6) && (get_cr() & CR_XP)) || |
321 | cpu_is_xsc3()) && | 320 | cpu_is_xsc3()) && |
322 | !((__pfn_to_phys(pfn) | size | addr) & ~SUPERSECTION_MASK)) { | 321 | !((__pfn_to_phys(pfn) | size | addr) & ~SUPERSECTION_MASK)) { |
323 | area->flags |= VM_ARM_SECTION_MAPPING; | 322 | area->flags |= VM_ARM_SECTION_MAPPING; |
@@ -369,6 +368,7 @@ void __iounmap(void __iomem *addr) | |||
369 | 368 | ||
370 | addr = (void __iomem *)(PAGE_MASK & (unsigned long)addr); | 369 | addr = (void __iomem *)(PAGE_MASK & (unsigned long)addr); |
371 | 370 | ||
371 | #ifndef CONFIG_SMP | ||
372 | /* | 372 | /* |
373 | * If this is a section based mapping we need to handle it | 373 | * If this is a section based mapping we need to handle it |
374 | * specially as the VM subysystem does not know how to handle | 374 | * specially as the VM subysystem does not know how to handle |
@@ -390,6 +390,7 @@ void __iounmap(void __iomem *addr) | |||
390 | } | 390 | } |
391 | } | 391 | } |
392 | write_unlock(&vmlist_lock); | 392 | write_unlock(&vmlist_lock); |
393 | #endif | ||
393 | 394 | ||
394 | if (!section_mapping) | 395 | if (!section_mapping) |
395 | vunmap(addr); | 396 | vunmap(addr); |
diff --git a/arch/arm/mm/proc-arm1020.S b/arch/arm/mm/proc-arm1020.S index 700297ae4a55..1d8316f3cecf 100644 --- a/arch/arm/mm/proc-arm1020.S +++ b/arch/arm/mm/proc-arm1020.S | |||
@@ -34,6 +34,8 @@ | |||
34 | #include <asm/procinfo.h> | 34 | #include <asm/procinfo.h> |
35 | #include <asm/ptrace.h> | 35 | #include <asm/ptrace.h> |
36 | 36 | ||
37 | #include "proc-macros.S" | ||
38 | |||
37 | /* | 39 | /* |
38 | * This is the maximum size of an area which will be invalidated | 40 | * This is the maximum size of an area which will be invalidated |
39 | * using the single invalidate entry instructions. Anything larger | 41 | * using the single invalidate entry instructions. Anything larger |
diff --git a/arch/arm/mm/proc-arm1020e.S b/arch/arm/mm/proc-arm1020e.S index 0c33a5ed5a61..89b1d6d3d7c0 100644 --- a/arch/arm/mm/proc-arm1020e.S +++ b/arch/arm/mm/proc-arm1020e.S | |||
@@ -34,6 +34,8 @@ | |||
34 | #include <asm/procinfo.h> | 34 | #include <asm/procinfo.h> |
35 | #include <asm/ptrace.h> | 35 | #include <asm/ptrace.h> |
36 | 36 | ||
37 | #include "proc-macros.S" | ||
38 | |||
37 | /* | 39 | /* |
38 | * This is the maximum size of an area which will be invalidated | 40 | * This is the maximum size of an area which will be invalidated |
39 | * using the single invalidate entry instructions. Anything larger | 41 | * using the single invalidate entry instructions. Anything larger |
diff --git a/arch/arm/mm/proc-arm1022.S b/arch/arm/mm/proc-arm1022.S index 566a55653072..a089528e6bce 100644 --- a/arch/arm/mm/proc-arm1022.S +++ b/arch/arm/mm/proc-arm1022.S | |||
@@ -23,6 +23,8 @@ | |||
23 | #include <asm/procinfo.h> | 23 | #include <asm/procinfo.h> |
24 | #include <asm/ptrace.h> | 24 | #include <asm/ptrace.h> |
25 | 25 | ||
26 | #include "proc-macros.S" | ||
27 | |||
26 | /* | 28 | /* |
27 | * This is the maximum size of an area which will be invalidated | 29 | * This is the maximum size of an area which will be invalidated |
28 | * using the single invalidate entry instructions. Anything larger | 30 | * using the single invalidate entry instructions. Anything larger |
diff --git a/arch/arm/mm/proc-arm1026.S b/arch/arm/mm/proc-arm1026.S index 6ea76321d0df..d6d84d92c7c7 100644 --- a/arch/arm/mm/proc-arm1026.S +++ b/arch/arm/mm/proc-arm1026.S | |||
@@ -23,6 +23,8 @@ | |||
23 | #include <asm/procinfo.h> | 23 | #include <asm/procinfo.h> |
24 | #include <asm/ptrace.h> | 24 | #include <asm/ptrace.h> |
25 | 25 | ||
26 | #include "proc-macros.S" | ||
27 | |||
26 | /* | 28 | /* |
27 | * This is the maximum size of an area which will be invalidated | 29 | * This is the maximum size of an area which will be invalidated |
28 | * using the single invalidate entry instructions. Anything larger | 30 | * using the single invalidate entry instructions. Anything larger |
diff --git a/arch/arm/mm/proc-arm925.S b/arch/arm/mm/proc-arm925.S index ad15f8503d51..8d9a9f93b011 100644 --- a/arch/arm/mm/proc-arm925.S +++ b/arch/arm/mm/proc-arm925.S | |||
@@ -454,7 +454,8 @@ __arm925_setup: | |||
454 | mcr p15, 7, r0, c15, c0, 0 | 454 | mcr p15, 7, r0, c15, c0, 0 |
455 | #endif | 455 | #endif |
456 | 456 | ||
457 | adr r5, {r5, r6} | 457 | adr r5, arm925_crval |
458 | ldmia r5, {r5, r6} | ||
458 | mrc p15, 0, r0, c1, c0 @ get control register v4 | 459 | mrc p15, 0, r0, c1, c0 @ get control register v4 |
459 | bic r0, r0, r5 | 460 | bic r0, r0, r5 |
460 | orr r0, r0, r6 | 461 | orr r0, r0, r6 |