aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/kernel/setup.c
diff options
context:
space:
mode:
authorOlaf Hering <olaf@aepfle.de>2011-03-23 19:43:29 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2011-03-23 22:47:19 -0400
commit93a72052be81823fa1584b9be037d51924f9efa4 (patch)
tree4f5c824c8fe3fb737e27b91bfd60c10d092dc3e9 /arch/arm/kernel/setup.c
parent8547727756a7322b99aa313ce50fe15d8f858872 (diff)
crash_dump: export is_kdump_kernel to modules, consolidate elfcorehdr_addr, setup_elfcorehdr and saved_max_pfn
The Xen PV drivers in a crashed HVM guest can not connect to the dom0 backend drivers because both frontend and backend drivers are still in connected state. To run the connection reset function only in case of a crashdump, the is_kdump_kernel() function needs to be available for the PV driver modules. Consolidate elfcorehdr_addr, setup_elfcorehdr and saved_max_pfn into kernel/crash_dump.c Also export elfcorehdr_addr to make is_kdump_kernel() usable for modules. Leave 'elfcorehdr' as early_param(). This changes powerpc from __setup() to early_param(). It adds an address range check from x86 also on ia64 and powerpc. [akpm@linux-foundation.org: additional #includes] [akpm@linux-foundation.org: remove elfcorehdr_addr export] [akpm@linux-foundation.org: fix for Tejun's mm/nobootmem.c changes] Signed-off-by: Olaf Hering <olaf@aepfle.de> Cc: Russell King <rmk@arm.linux.org.uk> Cc: "Luck, Tony" <tony.luck@intel.com> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Paul Mundt <lethal@linux-sh.org> Cc: Ingo Molnar <mingo@elte.hu> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: "H. Peter Anvin" <hpa@zytor.com> Cc: Johannes Weiner <hannes@cmpxchg.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/arm/kernel/setup.c')
-rw-r--r--arch/arm/kernel/setup.c24
1 files changed, 0 insertions, 24 deletions
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
index d1da92174277..c36c1a4250f3 100644
--- a/arch/arm/kernel/setup.c
+++ b/arch/arm/kernel/setup.c
@@ -788,30 +788,6 @@ static void __init reserve_crashkernel(void)
788static inline void reserve_crashkernel(void) {} 788static inline void reserve_crashkernel(void) {}
789#endif /* CONFIG_KEXEC */ 789#endif /* CONFIG_KEXEC */
790 790
791/*
792 * Note: elfcorehdr_addr is not just limited to vmcore. It is also used by
793 * is_kdump_kernel() to determine if we are booting after a panic. Hence
794 * ifdef it under CONFIG_CRASH_DUMP and not CONFIG_PROC_VMCORE.
795 */
796
797#ifdef CONFIG_CRASH_DUMP
798/*
799 * elfcorehdr= specifies the location of elf core header stored by the crashed
800 * kernel. This option will be passed by kexec loader to the capture kernel.
801 */
802static int __init setup_elfcorehdr(char *arg)
803{
804 char *end;
805
806 if (!arg)
807 return -EINVAL;
808
809 elfcorehdr_addr = memparse(arg, &end);
810 return end > arg ? 0 : -EINVAL;
811}
812early_param("elfcorehdr", setup_elfcorehdr);
813#endif /* CONFIG_CRASH_DUMP */
814
815static void __init squash_mem_tags(struct tag *tag) 791static void __init squash_mem_tags(struct tag *tag)
816{ 792{
817 for (; tag->hdr.size; tag = tag_next(tag)) 793 for (; tag->hdr.size; tag = tag_next(tag))