Commit 9ce41ea1 authored by Mao Minkai's avatar Mao Minkai Committed by guzitao
Browse files

sw64: fix crash kernel memory reservation

Sunway inclusion
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I73OCN



--------------------------------

Memory for crash kernel is reserved through memblock, so it should be
done before paging init.

Check base and size of requested memory region and make sure it can be
reserved before doing the actual reservation.

Signed-off-by: default avatarMao Minkai <maominkai@wxiat.com>
Reviewed-by: default avatarHe Sheng <hesheng@wxiat.com>
Signed-off-by: default avatarGu Zitao <guzitao@wxiat.com>
parent 88f6a504
Loading
Loading
Loading
Loading
+11 −1
Original line number Diff line number Diff line
@@ -178,6 +178,15 @@ static void __init reserve_crashkernel(void)
	if (ret || !crash_size)
		return;

	if (!crash_size) {
		pr_warn("size of crash kernel memory unspecified, no memory reserved for crash kernel\n");
		return;
	}
	if (!crash_base) {
		pr_warn("base of crash kernel memory unspecified, no memory reserved for crash kernel\n");
		return;
	}

	if (!memblock_is_region_memory(crash_base, crash_size))
		memblock_add(crash_base, crash_size);

@@ -819,6 +828,8 @@ setup_arch(char **cmdline_p)

	sw64_memblock_init();

	reserve_crashkernel();

	/* Reserve large chunks of memory for use by CMA for KVM. */
#if defined(CONFIG_KVM) || defined(CONFIG_KVM_MODULE)
	sw64_kvm_reserve();
@@ -847,7 +858,6 @@ setup_arch(char **cmdline_p)
	 */
	sw64_init_arch();

	reserve_crashkernel();
	/* Reserve standard resources.  */
	reserve_std_resources();