Message ID | 20190924152052.9635-1-tbogendoerfer@suse.de (mailing list archive) |
---|---|
State | Mainlined |
Commit | bd848d1b9235d027e65fcc87de26cc1b02b41cc8 |
Headers | show |
Series | MIPS: init: Prevent adding memory before PHYS_OFFSET | expand |
Hello, Thomas Bogendoerfer wrote: > On some SGI machines (IP28 and IP30) a small region of memory is mirrored > to pyhsical address 0 for exception vectors while rest of the memory > is reachable at a higher physical address. ARC PROM marks this > region as reserved, but with commit a94e4f24ec83 ("MIPS: init: Drop > boot_mem_map") this chunk is used, when searching for start of ram, > which breaks at least IP28 and IP30 machines. To fix this > add_region_memory() checks for start address < PHYS_OFFSET and ignores > these chunks. Applied to mips-fixes. > commit bd848d1b9235 > https://git.kernel.org/mips/c/bd848d1b9235 > > Fixes: a94e4f24ec83 ("MIPS: init: Drop boot_mem_map") > Signed-off-by: Thomas Bogendoerfer <tbogendoerfer@suse.de> > Signed-off-by: Paul Burton <paul.burton@mips.com> Thanks, Paul [ This message was auto-generated; if you believe anything is incorrect then please email paul.burton@mips.com to report it. ]
diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c index f5c6b4c6de24..5eec13b8d222 100644 --- a/arch/mips/kernel/setup.c +++ b/arch/mips/kernel/setup.c @@ -108,6 +108,9 @@ void __init add_memory_region(phys_addr_t start, phys_addr_t size, long type) return; } + if (start < PHYS_OFFSET) + return; + memblock_add(start, size); /* Reserve any memory except the ordinary RAM ranges. */ switch (type) {
On some SGI machines (IP28 and IP30) a small region of memory is mirrored to pyhsical address 0 for exception vectors while rest of the memory is reachable at a higher physical address. ARC PROM marks this region as reserved, but with commit a94e4f24ec83 ("MIPS: init: Drop boot_mem_map") this chunk is used, when searching for start of ram, which breaks at least IP28 and IP30 machines. To fix this add_region_memory() checks for start address < PHYS_OFFSET and ignores these chunks. Fixes: a94e4f24ec83 ("MIPS: init: Drop boot_mem_map") Signed-off-by: Thomas Bogendoerfer <tbogendoerfer@suse.de> --- arch/mips/kernel/setup.c | 3 +++ 1 file changed, 3 insertions(+)