From a20c38ffd18fbaf20f2464b85d0b18d4aaa8f11e Mon Sep 17 00:00:00 2001 From: zhongjiang Date: Tue, 19 Feb 2019 16:49:19 +0800 Subject: [PATCH] mm: memmap: remove unnecessary check and add print information euler inclusion category: bugfix CVE: NA Bugzilla: 9580 --------------------------- efi report the momory after the early_param. Hence add the memblock check of memmap parameter is unnecessary. And It will result in the fail of reserved memory. Meanwhile, add the print information inform the user of the incorrect usage the memmap. Signed-off-by: zhongjiang Reviewed-by: Jing Xiangfeng Signed-off-by: Yang Yingliang --- arch/arm64/kernel/setup.c | 4 ++-- arch/arm64/mm/init.c | 13 ++----------- 2 files changed, 4 insertions(+), 13 deletions(-) diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c index c6a473e5384a..36ce6ecf7326 100644 --- a/arch/arm64/kernel/setup.c +++ b/arch/arm64/kernel/setup.c @@ -210,7 +210,7 @@ static void __init request_standard_resources(void) { struct memblock_region *region; struct resource *res, *res_resources; - unsigned long i = 0, j = 0, res_count; + unsigned long i = 0, j, res_count; kernel_code.start = __pa_symbol(_text); kernel_code.end = __pa_symbol(__init_begin - 1); @@ -258,7 +258,7 @@ static void __init request_standard_resources(void) request_resource(res, &crashk_res); #endif - for (; j < res_mem_count; j++) { + for (j = 0; j < res_mem_count; j++) { if (res_resources[j].start >= res->start && res_resources[j].end <= res->end) request_resource(res, &res_resources[j]); diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c index 8a968d8e46a7..103c602b4972 100644 --- a/arch/arm64/mm/init.c +++ b/arch/arm64/mm/init.c @@ -400,16 +400,6 @@ static int __init parse_memmap_one(char *p) return -EINVAL; } - if (!memblock_is_region_memory(start_at, mem_size)) { - pr_warn("cannot reserve memory: region is not meory\n"); - return -EINVAL; - } - - if (memblock_is_region_reserved(start_at, mem_size)) { - pr_warn("cannot reserve memory: region overlaps reserved memory\n"); - return -EINVAL; - } - ret = memblock_reserve(start_at, mem_size); if (!ret) { res_mem[res_mem_count].base = start_at; @@ -417,7 +407,8 @@ static int __init parse_memmap_one(char *p) res_mem_count++; } else pr_warn("memmap memblock_reserve failed.\n"); - } + } else + pr_info("Unrecognized memmap option, please check the parameter.\n"); return *p == '\0' ? 0 : -EINVAL; } -- GitLab