mirror of
https://github.com/torvalds/linux.git
synced 2024-11-11 06:31:49 +00:00
[ARM] Fix bounding error in ioremap_pfn()
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>
This commit is contained in:
parent
4486b86368
commit
6d78b5f9c6
@ -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)
|
||||
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user