From: Marcin Nowakowski Date: Wed, 23 Nov 2016 13:43:44 +0000 (+0100) Subject: MIPS: init: Ensure reserved memory regions are not added to bootmem X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=e89ef66d7682f031f026eee6bba03c8c2248d2a9;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git 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 Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/14608/ Signed-off-by: Ralf Baechle --- diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c index 0058feaa65e5..8ebad247ce82 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; }