summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcin Nowakowski <marcin.nowakowski@imgtec.com>2016-11-23 14:43:44 +0100
committerRalf Baechle <ralf@linux-mips.org>2017-01-03 16:34:45 +0100
commite89ef66d7682f031f026eee6bba03c8c2248d2a9 (patch)
tree3b6bcb90a6524ebb97734710c5d8845190f18406
parent269aa43aad0f96673478fe2446abe54d7ad42e8f (diff)
downloadop-kernel-dev-e89ef66d7682f031f026eee6bba03c8c2248d2a9.zip
op-kernel-dev-e89ef66d7682f031f026eee6bba03c8c2248d2a9.tar.gz
MIPS: init: Ensure reserved memory regions are not added to bootmem
Memories managed through boot_mem_map are generally expected to define non-crossing areas. However, if part of a larger memory block is marked as reserved, it would still be added to bootmem allocator as an available block and could end up being overwritten by the allocator. Prevent this by explicitly marking the memory as reserved it if exists in the range used by bootmem allocator. Signed-off-by: Marcin Nowakowski <marcin.nowakowski@imgtec.com> Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/14608/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
-rw-r--r--arch/mips/kernel/setup.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c
index 0058fea..8ebad24 100644
--- a/arch/mips/kernel/setup.c
+++ b/arch/mips/kernel/setup.c
@@ -483,6 +483,10 @@ static void __init bootmem_init(void)
continue;
default:
/* Not usable memory */
+ if (start > min_low_pfn && end < max_low_pfn)
+ reserve_bootmem(boot_mem_map.map[i].addr,
+ boot_mem_map.map[i].size,
+ BOOTMEM_DEFAULT);
continue;
}
OpenPOWER on IntegriCloud