Rather than use the memblock_alloc_base that returns a physical address and
then convert this address to the virtual one, use appropriate memblock
function that returns a virtual address.

Signed-off-by: Mike Rapoport <r...@linux.ibm.com>
Tested-by: Michal Simek <michal.si...@xilinx.com>
---
 arch/microblaze/mm/init.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/arch/microblaze/mm/init.c b/arch/microblaze/mm/init.c
index b17fd8a..44f4b89 100644
--- a/arch/microblaze/mm/init.c
+++ b/arch/microblaze/mm/init.c
@@ -363,8 +363,9 @@ void __init *early_get_page(void)
         * Mem start + kernel_tlb -> here is limit
         * because of mem mapping from head.S
         */
-       return __va(memblock_alloc_base(PAGE_SIZE, PAGE_SIZE,
-                               memory_start + kernel_tlb));
+       return memblock_alloc_try_nid_raw(PAGE_SIZE, PAGE_SIZE,
+                               MEMBLOCK_LOW_LIMIT, memory_start + kernel_tlb,
+                               NUMA_NO_NODE);
 }
 
 #endif /* CONFIG_MMU */
-- 
2.7.4

Reply via email to