arm64: kernel: arch_crash_save_vmcoreinfo() should depend on CONFIG_CRASH_CORE
Since commit 23c85094fe
("proc/kcore: add vmcoreinfo note to /proc/kcore")
the kernel has exported the vmcoreinfo PT_NOTE on /proc/kcore as well
as /proc/vmcore.
arm64 only exposes it's additional arch information via
arch_crash_save_vmcoreinfo() if built with CONFIG_KEXEC, as kdump was
previously the only user of vmcoreinfo.
Move this weak function to a separate file that is built at the same
time as its caller in kernel/crash_core.c. This ensures values like
'kimage_voffset' are always present in the vmcoreinfo PT_NOTE.
CC: AKASHI Takahiro <takahiro.akashi@linaro.org>
Reviewed-by: Bhupesh Sharma <bhsharma@redhat.com>
Signed-off-by: James Morse <james.morse@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
This commit is contained in:
parent
13aceef06a
commit
84c57dbd3c
|
@ -54,6 +54,7 @@ arm64-obj-$(CONFIG_KEXEC) += machine_kexec.o relocate_kernel.o \
|
||||||
arm64-obj-$(CONFIG_ARM64_RELOC_TEST) += arm64-reloc-test.o
|
arm64-obj-$(CONFIG_ARM64_RELOC_TEST) += arm64-reloc-test.o
|
||||||
arm64-reloc-test-y := reloc_test_core.o reloc_test_syms.o
|
arm64-reloc-test-y := reloc_test_core.o reloc_test_syms.o
|
||||||
arm64-obj-$(CONFIG_CRASH_DUMP) += crash_dump.o
|
arm64-obj-$(CONFIG_CRASH_DUMP) += crash_dump.o
|
||||||
|
arm64-obj-$(CONFIG_CRASH_CORE) += crash_core.o
|
||||||
arm64-obj-$(CONFIG_ARM_SDE_INTERFACE) += sdei.o
|
arm64-obj-$(CONFIG_ARM_SDE_INTERFACE) += sdei.o
|
||||||
arm64-obj-$(CONFIG_ARM64_SSBD) += ssbd.o
|
arm64-obj-$(CONFIG_ARM64_SSBD) += ssbd.o
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
|
/*
|
||||||
|
* Copyright (C) Linaro.
|
||||||
|
* Copyright (C) Huawei Futurewei Technologies.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <linux/crash_core.h>
|
||||||
|
#include <asm/memory.h>
|
||||||
|
|
||||||
|
void arch_crash_save_vmcoreinfo(void)
|
||||||
|
{
|
||||||
|
VMCOREINFO_NUMBER(VA_BITS);
|
||||||
|
/* Please note VMCOREINFO_NUMBER() uses "%d", not "%x" */
|
||||||
|
vmcoreinfo_append_str("NUMBER(kimage_voffset)=0x%llx\n",
|
||||||
|
kimage_voffset);
|
||||||
|
vmcoreinfo_append_str("NUMBER(PHYS_OFFSET)=0x%llx\n",
|
||||||
|
PHYS_OFFSET);
|
||||||
|
vmcoreinfo_append_str("KERNELOFFSET=%lx\n", kaslr_offset());
|
||||||
|
}
|
|
@ -358,14 +358,3 @@ void crash_free_reserved_phys_range(unsigned long begin, unsigned long end)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_HIBERNATION */
|
#endif /* CONFIG_HIBERNATION */
|
||||||
|
|
||||||
void arch_crash_save_vmcoreinfo(void)
|
|
||||||
{
|
|
||||||
VMCOREINFO_NUMBER(VA_BITS);
|
|
||||||
/* Please note VMCOREINFO_NUMBER() uses "%d", not "%x" */
|
|
||||||
vmcoreinfo_append_str("NUMBER(kimage_voffset)=0x%llx\n",
|
|
||||||
kimage_voffset);
|
|
||||||
vmcoreinfo_append_str("NUMBER(PHYS_OFFSET)=0x%llx\n",
|
|
||||||
PHYS_OFFSET);
|
|
||||||
vmcoreinfo_append_str("KERNELOFFSET=%lx\n", kaslr_offset());
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in New Issue