MIPS: Let early memblock_alloc*() allocate memories bottom-up

After switched to NO_BOOTMEM, there are several boot failures. Some of
them have been fixed and some of them haven't. I find that many of them
are because of memory allocations are top-down, while the old behavior
is bottom-up. This patch let early memblock_alloc*() allocate memories
bottom-up to avoid some potential problems.

Signed-off-by: Huacai Chen <chenhc@lemote.com>
Signed-off-by: Paul Burton <paul.burton@mips.com>
Fixes: bcec54bf3118 ("mips: switch to NO_BOOTMEM")
Patchwork: https://patchwork.linux-mips.org/patch/21069/
References: https://patchwork.linux-mips.org/patch/21031/
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: James Hogan <james.hogan@mips.com>
Cc: Steven J . Hill <Steven.Hill@cavium.com>
Cc: linux-mips@linux-mips.org
Cc: Fuxin Zhang <zhangfx@lemote.com>
Cc: Zhangjin Wu <wuzhangjin@gmail.com>

authored by

Huacai Chen and committed by
Paul Burton
25517ed4 82fba2df

+2 -2
+1
arch/mips/kernel/setup.c
··· 794 794 795 795 /* call board setup routine */ 796 796 plat_mem_setup(); 797 + memblock_set_bottom_up(true); 797 798 798 799 /* 799 800 * Make sure all kernel memory is in the maps. The "UP" and
+1 -2
arch/mips/kernel/traps.c
··· 2260 2260 unsigned long size = 0x200 + VECTORSPACING*64; 2261 2261 phys_addr_t ebase_pa; 2262 2262 2263 - memblock_set_bottom_up(true); 2264 2263 ebase = (unsigned long) 2265 2264 memblock_alloc_from(size, 1 << fls(size), 0); 2266 - memblock_set_bottom_up(false); 2267 2265 2268 2266 /* 2269 2267 * Try to ensure ebase resides in KSeg0 if possible. ··· 2305 2307 if (board_ebase_setup) 2306 2308 board_ebase_setup(); 2307 2309 per_cpu_trap_init(true); 2310 + memblock_set_bottom_up(false); 2308 2311 2309 2312 /* 2310 2313 * Copy the generic exception handlers to their final destination.