[ARM] Fix BUG()s in ioremap() code
authorRussell King <rmk@dyn-67.arm.linux.org.uk>
Sun, 17 Dec 2006 23:29:57 +0000 (23:29 +0000)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Sun, 17 Dec 2006 23:29:57 +0000 (23:29 +0000)
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>
arch/arm/mm/ioremap.c

index 3bb3951920bc9809b31ee19e184cc6e3475deea1..251685fe73a8841ec51190bf66f23fcf777009c9 100644 (file)
@@ -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;