mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 04:18:39 +08:00
crash: use macro to add crashk_res into iomem early for specific arch
commit32fbe52465
upstream. There are regression reports[1][2] that crashkernel region on x86_64 can't be added into iomem tree sometime. This causes the later failure of kdump loading. This happened after commit4a693ce65b
("kdump: defer the insertion of crashkernel resources") was merged. Even though, these reported issues are proved to be related to other component, they are just exposed after above commmit applied, I still would like to keep crashk_res and crashk_low_res being added into iomem early as before because the early adding has been always there on x86_64 and working very well. For safety of kdump, Let's change it back. Here, add a macro HAVE_ARCH_ADD_CRASH_RES_TO_IOMEM_EARLY to limit that only ARCH defining the macro can have the early adding crashk_res/_low_res into iomem. Then define HAVE_ARCH_ADD_CRASH_RES_TO_IOMEM_EARLY on x86 to enable it. Note: In reserve_crashkernel_low(), there's a remnant of crashk_low_res handling which was mistakenly added back in commit85fcde402d
("kexec: split crashkernel reservation code out from crash_core.c"). [1] [PATCH V2] x86/kexec: do not update E820 kexec table for setup_data https://lore.kernel.org/all/Zfv8iCL6CT2JqLIC@darkstar.users.ipa.redhat.com/T/#u [2] Question about Address Range Validation in Crash Kernel Allocation https://lore.kernel.org/all/4eeac1f733584855965a2ea62fa4da58@huawei.com/T/#u Link: https://lkml.kernel.org/r/ZgDYemRQ2jxjLkq+@MiWiFi-R3L-srv Fixes:4a693ce65b
("kdump: defer the insertion of crashkernel resources") Signed-off-by: Baoquan He <bhe@redhat.com> Cc: Dave Young <dyoung@redhat.com> Cc: Huacai Chen <chenhuacai@loongson.cn> Cc: Ingo Molnar <mingo@kernel.org> Cc: Jiri Bohac <jbohac@suse.cz> Cc: Li Huafei <lihuafei1@huawei.com> Cc: <stable@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Baoquan He <bhe@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
aa5c2dafd4
commit
23ff855e14
@ -39,4 +39,6 @@ static inline unsigned long crash_low_size_default(void)
|
||||
#endif
|
||||
}
|
||||
|
||||
#define HAVE_ARCH_ADD_CRASH_RES_TO_IOMEM_EARLY
|
||||
|
||||
#endif /* _X86_CRASH_CORE_H */
|
||||
|
@ -377,6 +377,9 @@ static int __init reserve_crashkernel_low(unsigned long long low_size)
|
||||
|
||||
crashk_low_res.start = low_base;
|
||||
crashk_low_res.end = low_base + low_size - 1;
|
||||
#ifdef HAVE_ARCH_ADD_CRASH_RES_TO_IOMEM_EARLY
|
||||
insert_resource(&iomem_resource, &crashk_low_res);
|
||||
#endif
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
@ -458,8 +461,12 @@ retry:
|
||||
|
||||
crashk_res.start = crash_base;
|
||||
crashk_res.end = crash_base + crash_size - 1;
|
||||
#ifdef HAVE_ARCH_ADD_CRASH_RES_TO_IOMEM_EARLY
|
||||
insert_resource(&iomem_resource, &crashk_res);
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifndef HAVE_ARCH_ADD_CRASH_RES_TO_IOMEM_EARLY
|
||||
static __init int insert_crashkernel_resources(void)
|
||||
{
|
||||
if (crashk_res.start < crashk_res.end)
|
||||
@ -472,6 +479,7 @@ static __init int insert_crashkernel_resources(void)
|
||||
}
|
||||
early_initcall(insert_crashkernel_resources);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
int crash_prepare_elf64_headers(struct crash_mem *mem, int need_kernel_map,
|
||||
void **addr, unsigned long *sz)
|
||||
|
Loading…
Reference in New Issue
Block a user