aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2010-05-10 22:53:11 -0400
committerPaul Mundt <lethal@linux-sh.org>2010-05-10 22:53:11 -0400
commit15f2a7967a46c7fab579ab88b9f1e0c7f78ac495 (patch)
tree98d9638bc382de772a6cfd0a4d8b697e3e10ff48
parent4f615d575c17195f975cf8314be54f362d859a3f (diff)
parent7aed3b34fb0a98e89d0e999f5833ceebdb3876b9 (diff)
Merge branches 'sh/clkfwk' and 'sh/kexec'
-rw-r--r--arch/sh/Kconfig2
-rw-r--r--arch/sh/kernel/crash_dump.c20
-rw-r--r--arch/sh/kernel/machine_kexec.c3
-rw-r--r--arch/sh/kernel/setup.c19
4 files changed, 23 insertions, 21 deletions
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig
index c2325bd48fd3..38611bcdf74c 100644
--- a/arch/sh/Kconfig
+++ b/arch/sh/Kconfig
@@ -633,7 +633,7 @@ config KEXEC
633 633
634config CRASH_DUMP 634config CRASH_DUMP
635 bool "kernel crash dumps (EXPERIMENTAL)" 635 bool "kernel crash dumps (EXPERIMENTAL)"
636 depends on SUPERH32 && EXPERIMENTAL 636 depends on SUPERH32 && EXPERIMENTAL && BROKEN_ON_SMP
637 help 637 help
638 Generate crash dump after being started by kexec. 638 Generate crash dump after being started by kexec.
639 This should be normally only set in special crash dump kernels 639 This should be normally only set in special crash dump kernels
diff --git a/arch/sh/kernel/crash_dump.c b/arch/sh/kernel/crash_dump.c
index 95d216255565..37c97d444576 100644
--- a/arch/sh/kernel/crash_dump.c
+++ b/arch/sh/kernel/crash_dump.c
@@ -4,7 +4,6 @@
4 * Created by: Hariprasad Nellitheertha (hari@in.ibm.com) 4 * Created by: Hariprasad Nellitheertha (hari@in.ibm.com)
5 * Copyright (C) IBM Corporation, 2004. All rights reserved 5 * Copyright (C) IBM Corporation, 2004. All rights reserved
6 */ 6 */
7
8#include <linux/errno.h> 7#include <linux/errno.h>
9#include <linux/crash_dump.h> 8#include <linux/crash_dump.h>
10#include <linux/io.h> 9#include <linux/io.h>
@@ -13,6 +12,25 @@
13/* Stores the physical address of elf header of crash image. */ 12/* Stores the physical address of elf header of crash image. */
14unsigned long long elfcorehdr_addr = ELFCORE_ADDR_MAX; 13unsigned long long elfcorehdr_addr = ELFCORE_ADDR_MAX;
15 14
15/*
16 * Note: elfcorehdr_addr is not just limited to vmcore. It is also used by
17 * is_kdump_kernel() to determine if we are booting after a panic. Hence
18 * ifdef it under CONFIG_CRASH_DUMP and not CONFIG_PROC_VMCORE.
19 *
20 * elfcorehdr= specifies the location of elf core header
21 * stored by the crashed kernel.
22 */
23static int __init parse_elfcorehdr(char *arg)
24{
25 if (!arg)
26 return -EINVAL;
27
28 elfcorehdr_addr = memparse(arg, &arg);
29
30 return 0;
31}
32early_param("elfcorehdr", parse_elfcorehdr);
33
16/** 34/**
17 * copy_oldmem_page - copy one page from "oldmem" 35 * copy_oldmem_page - copy one page from "oldmem"
18 * @pfn: page frame number to be copied 36 * @pfn: page frame number to be copied
diff --git a/arch/sh/kernel/machine_kexec.c b/arch/sh/kernel/machine_kexec.c
index 7672141c841b..0e90c7f9564f 100644
--- a/arch/sh/kernel/machine_kexec.c
+++ b/arch/sh/kernel/machine_kexec.c
@@ -147,4 +147,7 @@ void arch_crash_save_vmcoreinfo(void)
147 VMCOREINFO_SYMBOL(node_data); 147 VMCOREINFO_SYMBOL(node_data);
148 VMCOREINFO_LENGTH(node_data, MAX_NUMNODES); 148 VMCOREINFO_LENGTH(node_data, MAX_NUMNODES);
149#endif 149#endif
150#ifdef CONFIG_X2TLB
151 VMCOREINFO_CONFIG(X2TLB);
152#endif
150} 153}
diff --git a/arch/sh/kernel/setup.c b/arch/sh/kernel/setup.c
index 9c7f7811af70..4f1585f41f2b 100644
--- a/arch/sh/kernel/setup.c
+++ b/arch/sh/kernel/setup.c
@@ -380,25 +380,6 @@ static void __init setup_memory(void)
380extern void __init setup_memory(void); 380extern void __init setup_memory(void);
381#endif 381#endif
382 382
383/*
384 * Note: elfcorehdr_addr is not just limited to vmcore. It is also used by
385 * is_kdump_kernel() to determine if we are booting after a panic. Hence
386 * ifdef it under CONFIG_CRASH_DUMP and not CONFIG_PROC_VMCORE.
387 */
388#ifdef CONFIG_CRASH_DUMP
389/* elfcorehdr= specifies the location of elf core header
390 * stored by the crashed kernel.
391 */
392static int __init parse_elfcorehdr(char *arg)
393{
394 if (!arg)
395 return -EINVAL;
396 elfcorehdr_addr = memparse(arg, &arg);
397 return 0;
398}
399early_param("elfcorehdr", parse_elfcorehdr);
400#endif
401
402void __init __attribute__ ((weak)) plat_early_device_setup(void) 383void __init __attribute__ ((weak)) plat_early_device_setup(void)
403{ 384{
404} 385}