mirror of
https://github.com/torvalds/linux
synced 2024-09-06 18:01:05 +00:00
crash_core: move crashk_*res definition into crash_core.c
Both crashk_res and crashk_low_res are used to mark the reserved crashkernel regions in iomem_resource tree. And later the generic crashkernel resrvation will be added into crash_core.c. So move crashk_res and crashk_low_res definition into crash_core.c to avoid compiling error if CONFIG_CRASH_CORE=on while CONFIG_KEXEC_CORE is unset. Meanwhile include <asm/crash_core.h> in <linux/crash_core.h> if generic reservation is needed. In that case, <asm/crash_core.h> need be added by ARCH. In asm/crash_core.h, ARCH can provide its own macro definitions to override macros in <linux/crash_core.h> if needed. Wrap the including into CONFIG_ARCH_HAS_GENERIC_CRASHKERNEL_RESERVATION ifdeffery scope to avoid compiling error in other ARCH-es which don't take the generic reservation way yet. Link: https://lkml.kernel.org/r/20230914033142.676708-6-bhe@redhat.com Signed-off-by: Baoquan He <bhe@redhat.com> Reviewed-by: Zhen Lei <thunder.leizhen@huawei.com> Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Chen Jiahao <chenjiahao16@huawei.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
0ab97169aa
commit
b631b95dde
|
@ -5,6 +5,14 @@
|
||||||
#include <linux/linkage.h>
|
#include <linux/linkage.h>
|
||||||
#include <linux/elfcore.h>
|
#include <linux/elfcore.h>
|
||||||
#include <linux/elf.h>
|
#include <linux/elf.h>
|
||||||
|
#ifdef CONFIG_ARCH_HAS_GENERIC_CRASHKERNEL_RESERVATION
|
||||||
|
#include <asm/crash_core.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Location of a reserved region to hold the crash kernel.
|
||||||
|
*/
|
||||||
|
extern struct resource crashk_res;
|
||||||
|
extern struct resource crashk_low_res;
|
||||||
|
|
||||||
#define CRASH_CORE_NOTE_NAME "CORE"
|
#define CRASH_CORE_NOTE_NAME "CORE"
|
||||||
#define CRASH_CORE_NOTE_HEAD_BYTES ALIGN(sizeof(struct elf_note), 4)
|
#define CRASH_CORE_NOTE_HEAD_BYTES ALIGN(sizeof(struct elf_note), 4)
|
||||||
|
|
|
@ -22,10 +22,6 @@
|
||||||
#include <uapi/linux/kexec.h>
|
#include <uapi/linux/kexec.h>
|
||||||
#include <linux/verification.h>
|
#include <linux/verification.h>
|
||||||
|
|
||||||
/* Location of a reserved region to hold the crash kernel.
|
|
||||||
*/
|
|
||||||
extern struct resource crashk_res;
|
|
||||||
extern struct resource crashk_low_res;
|
|
||||||
extern note_buf_t __percpu *crash_notes;
|
extern note_buf_t __percpu *crash_notes;
|
||||||
|
|
||||||
#ifdef CONFIG_KEXEC_CORE
|
#ifdef CONFIG_KEXEC_CORE
|
||||||
|
|
|
@ -35,6 +35,22 @@ u32 *vmcoreinfo_note;
|
||||||
/* trusted vmcoreinfo, e.g. we can make a copy in the crash memory */
|
/* trusted vmcoreinfo, e.g. we can make a copy in the crash memory */
|
||||||
static unsigned char *vmcoreinfo_data_safecopy;
|
static unsigned char *vmcoreinfo_data_safecopy;
|
||||||
|
|
||||||
|
/* Location of the reserved area for the crash kernel */
|
||||||
|
struct resource crashk_res = {
|
||||||
|
.name = "Crash kernel",
|
||||||
|
.start = 0,
|
||||||
|
.end = 0,
|
||||||
|
.flags = IORESOURCE_BUSY | IORESOURCE_SYSTEM_RAM,
|
||||||
|
.desc = IORES_DESC_CRASH_KERNEL
|
||||||
|
};
|
||||||
|
struct resource crashk_low_res = {
|
||||||
|
.name = "Crash kernel",
|
||||||
|
.start = 0,
|
||||||
|
.end = 0,
|
||||||
|
.flags = IORESOURCE_BUSY | IORESOURCE_SYSTEM_RAM,
|
||||||
|
.desc = IORES_DESC_CRASH_KERNEL
|
||||||
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* parsing the "crashkernel" commandline
|
* parsing the "crashkernel" commandline
|
||||||
*
|
*
|
||||||
|
|
|
@ -52,23 +52,6 @@ atomic_t __kexec_lock = ATOMIC_INIT(0);
|
||||||
/* Flag to indicate we are going to kexec a new kernel */
|
/* Flag to indicate we are going to kexec a new kernel */
|
||||||
bool kexec_in_progress = false;
|
bool kexec_in_progress = false;
|
||||||
|
|
||||||
|
|
||||||
/* Location of the reserved area for the crash kernel */
|
|
||||||
struct resource crashk_res = {
|
|
||||||
.name = "Crash kernel",
|
|
||||||
.start = 0,
|
|
||||||
.end = 0,
|
|
||||||
.flags = IORESOURCE_BUSY | IORESOURCE_SYSTEM_RAM,
|
|
||||||
.desc = IORES_DESC_CRASH_KERNEL
|
|
||||||
};
|
|
||||||
struct resource crashk_low_res = {
|
|
||||||
.name = "Crash kernel",
|
|
||||||
.start = 0,
|
|
||||||
.end = 0,
|
|
||||||
.flags = IORESOURCE_BUSY | IORESOURCE_SYSTEM_RAM,
|
|
||||||
.desc = IORES_DESC_CRASH_KERNEL
|
|
||||||
};
|
|
||||||
|
|
||||||
int kexec_should_crash(struct task_struct *p)
|
int kexec_should_crash(struct task_struct *p)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in a new issue