summaryrefslogtreecommitdiffstats
path: root/arch/arm/mm/ioremap.c
diff options
context:
space:
mode:
authorRussell King <rmk@dyn-67.arm.linux.org.uk>2006-12-18 00:29:57 +0100
committerRussell King <rmk+kernel@arm.linux.org.uk>2006-12-18 00:29:57 +0100
commitc924aff853bdc1c9841dd22440f931fba5ab3a59 (patch)
treeeaf325f35e46f8d76514fa357326d78590eafd7f /arch/arm/mm/ioremap.c
parent[ARM] Add more syscalls (diff)
downloadlinux-c924aff853bdc1c9841dd22440f931fba5ab3a59.tar.xz
linux-c924aff853bdc1c9841dd22440f931fba5ab3a59.zip
[ARM] Fix BUG()s in ioremap() code
We need to ensure that the area size is page aligned so that remap_area_pte() doesn't increment the address past the end of the desired area. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mm/ioremap.c')
-rw-r--r--arch/arm/mm/ioremap.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/arm/mm/ioremap.c b/arch/arm/mm/ioremap.c
index 3bb3951920bc..251685fe73a8 100644
--- a/arch/arm/mm/ioremap.c
+++ b/arch/arm/mm/ioremap.c
@@ -292,6 +292,8 @@ __ioremap_pfn(unsigned long pfn, unsigned long offset, size_t size,
if (pfn >= 0x100000 && (__pfn_to_phys(pfn) & ~SUPERSECTION_MASK))
return NULL;
+ size = PAGE_ALIGN(size);
+
area = get_vm_area(size, VM_IOREMAP);
if (!area)
return NULL;