|
@@ -89,8 +89,10 @@ void __iomem *__init efi_ioremap(unsigned long phys_addr, unsigned long size,
|
|
|
return ioremap(phys_addr, size);
|
|
|
|
|
|
last_map_pfn = init_memory_mapping(phys_addr, phys_addr + size);
|
|
|
- if ((last_map_pfn << PAGE_SHIFT) < phys_addr + size)
|
|
|
- return NULL;
|
|
|
+ if ((last_map_pfn << PAGE_SHIFT) < phys_addr + size) {
|
|
|
+ unsigned long top = last_map_pfn << PAGE_SHIFT;
|
|
|
+ efi_ioremap(top, size - (top - phys_addr), type);
|
|
|
+ }
|
|
|
|
|
|
return (void __iomem *)__va(phys_addr);
|
|
|
}
|