Skip to content

Commit

Permalink
[ARM] Fix bounding error in ioremap_pfn()
Browse files Browse the repository at this point in the history
If size=16M offset=2K then we should map two supersections
rather than just one.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  • Loading branch information
Russell King authored and Russell King committed Jul 12, 2007
1 parent 4486b86 commit 6d78b5f
Showing 1 changed file with 4 additions and 6 deletions.
10 changes: 4 additions & 6 deletions arch/arm/mm/ioremap.c
Original file line number Diff line number Diff line change
Expand Up @@ -280,7 +280,10 @@ __arm_ioremap_pfn(unsigned long pfn, unsigned long offset, size_t size,
if (!type)
return NULL;

size = PAGE_ALIGN(size);
/*
* Page align the mapping size, taking account of any offset.
*/
size = PAGE_ALIGN(offset + size);

area = get_vm_area(size, VM_IOREMAP);
if (!area)
Expand Down Expand Up @@ -325,11 +328,6 @@ __arm_ioremap(unsigned long phys_addr, size_t size, unsigned int mtype)
if (!size || last_addr < phys_addr)
return NULL;

/*
* Page align the mapping size
*/
size = PAGE_ALIGN(last_addr + 1) - phys_addr;

return __arm_ioremap_pfn(pfn, offset, size, mtype);
}
EXPORT_SYMBOL(__arm_ioremap);
Expand Down

0 comments on commit 6d78b5f

Please sign in to comment.