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.c5
1 files changed, 3 insertions, 2 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);