aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/ipl.c
diff options
context:
space:
mode:
authorMichael Holzheu <holzheu@linux.vnet.ibm.com>2011-10-30 10:16:40 -0400
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2011-10-30 10:16:42 -0400
commit60a0c68df2632feaa4a986af084650d1165d89c5 (patch)
treef55907defeab43de02a5a3127c8d5a694a21b3a2 /arch/s390/kernel/ipl.c
parent7f0bf656c66e4292e965c95fd9de55c72b6578bb (diff)
[S390] kdump backend code
This patch provides the architecture specific part of the s390 kdump support. Signed-off-by: Michael Holzheu <holzheu@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel/ipl.c')
-rw-r--r--arch/s390/kernel/ipl.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/arch/s390/kernel/ipl.c b/arch/s390/kernel/ipl.c
index 90769b4bc7f6..ca0520c52547 100644
--- a/arch/s390/kernel/ipl.c
+++ b/arch/s390/kernel/ipl.c
@@ -16,6 +16,7 @@
16#include <linux/ctype.h> 16#include <linux/ctype.h>
17#include <linux/fs.h> 17#include <linux/fs.h>
18#include <linux/gfp.h> 18#include <linux/gfp.h>
19#include <linux/crash_dump.h>
19#include <asm/ipl.h> 20#include <asm/ipl.h>
20#include <asm/smp.h> 21#include <asm/smp.h>
21#include <asm/setup.h> 22#include <asm/setup.h>
@@ -1740,6 +1741,9 @@ void do_restart(void)
1740{ 1741{
1741 smp_restart_with_online_cpu(); 1742 smp_restart_with_online_cpu();
1742 smp_send_stop(); 1743 smp_send_stop();
1744#ifdef CONFIG_CRASH_DUMP
1745 crash_kexec(NULL);
1746#endif
1743 on_restart_trigger.action->fn(&on_restart_trigger); 1747 on_restart_trigger.action->fn(&on_restart_trigger);
1744 stop_run(&on_restart_trigger); 1748 stop_run(&on_restart_trigger);
1745} 1749}
@@ -2010,7 +2014,7 @@ static void do_reset_calls(void)
2010 2014
2011u32 dump_prefix_page; 2015u32 dump_prefix_page;
2012 2016
2013void s390_reset_system(void) 2017void s390_reset_system(void (*func)(void *), void *data)
2014{ 2018{
2015 struct _lowcore *lc; 2019 struct _lowcore *lc;
2016 2020
@@ -2038,6 +2042,10 @@ void s390_reset_system(void)
2038 S390_lowcore.program_new_psw.addr = 2042 S390_lowcore.program_new_psw.addr =
2039 PSW_ADDR_AMODE | (unsigned long) s390_base_pgm_handler; 2043 PSW_ADDR_AMODE | (unsigned long) s390_base_pgm_handler;
2040 2044
2045 /* Store status at absolute zero */
2046 store_status();
2047
2041 do_reset_calls(); 2048 do_reset_calls();
2049 if (func)
2050 func(data);
2042} 2051}
2043