riscv: Parse all memory blocks to remove unusable memory
authorAtish Patra <atish.patra@wdc.com>
Wed, 15 Jul 2020 23:30:09 +0000 (16:30 -0700)
committerPalmer Dabbelt <palmerdabbelt@google.com>
Sat, 25 Jul 2020 05:08:25 +0000 (22:08 -0700)
commitfa5a198359053c8e21dcc2b39c0e13871059bc9f
tree2f5f2132f89018fe9963519b85409e00ecdf1dc2
parent4400231c8acc7e513204c8470c6d796ba47dc169
riscv: Parse all memory blocks to remove unusable memory

Currently, maximum physical memory allowed is equal to -PAGE_OFFSET.
That's why we remove any memory blocks spanning beyond that size. However,
it is done only for memblock containing linux kernel which will not work
if there are multiple memblocks.

Process all memory blocks to figure out how much memory needs to be removed
and remove at the end instead of updating the memblock list in place.

Signed-off-by: Atish Patra <atish.patra@wdc.com>
Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
arch/riscv/mm/init.c