Unverified Commit 9cc04c4e authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!1650 mm: disable kernelcore=mirror when no mirror memory

parents 8bf7fb5a 6087cfe0
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -2493,6 +2493,7 @@ extern void get_pfn_range_for_nid(unsigned int nid,
extern unsigned long find_min_pfn_with_active_regions(void);

extern bool mirrored_kernelcore;
extern bool memblock_has_mirror(void);

#ifndef CONFIG_NEED_MULTIPLE_NODES
static inline int early_pfn_to_nid(unsigned long pfn)
+5 −0
Original line number Diff line number Diff line
@@ -161,6 +161,11 @@ static int memblock_can_resize __initdata_memblock;
static int memblock_memory_in_slab __initdata_memblock = 0;
static int memblock_reserved_in_slab __initdata_memblock = 0;

bool __init_memblock memblock_has_mirror(void)
{
	return system_has_some_mirror;
}

static enum memblock_flags __init_memblock choose_memblock_flags(void)
{
	return system_has_some_mirror ? MEMBLOCK_MIRROR : MEMBLOCK_NONE;
+5 −0
Original line number Diff line number Diff line
@@ -7741,6 +7741,11 @@ static void __init find_zone_movable_pfns_for_nodes(void)
		bool has_unmirrored_mem = false;
		unsigned long mirrored_sz = 0;

		if (!memblock_has_mirror()) {
			pr_warn("The system has no mirror memory, ignore kernelcore=mirror.\n");
			goto out;
		}

		for_each_mem_region(r) {
			if (memblock_is_mirror(r)) {
				mirrored_sz += r->size;