diff options
author | Michael Holzheu <holzheu@de.ibm.com> | 2008-01-26 08:11:11 -0500 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2008-01-26 08:11:19 -0500 |
commit | 99ca4e582d4a4088969681efff97be44d98421a1 (patch) | |
tree | f6478bcdc30d84cc6f67485bd78c9ba54827e07e /arch/s390/kernel/smp.c | |
parent | ceb3dfbae1d3faacaedfc64c913fd18cd3624f72 (diff) |
[S390] kernel: Shutdown Actions Interface
In case of a kernel panic it is currently possible to specify that a dump
should be created, the system should be rebooted or stopped. Virtual sysfs
files under the directory /sys/firmware/ are used for that configuration.
In addition to that, there are kernel parameters 'vmhalt', 'vmpoff'
and 'vmpanic', which can be used to specify z/VM commands, which are
automatically executed in case of halt, power off or a kernel panic.
This patch combines both functionalities and allows to specify the z/VM CP
commands also via sysfs attributes. In addition to that, it enhances the
existing handling of shutdown triggers (e.g. halt or panic) and associated
shutdown actions (e.g. dump or reipl) and makes it more flexible.
Signed-off-by: Michael Holzheu <holzheu@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel/smp.c')
-rw-r--r-- | arch/s390/kernel/smp.c | 27 |
1 files changed, 0 insertions, 27 deletions
diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c index 320e4e97bf52..d300a7fdf711 100644 --- a/arch/s390/kernel/smp.c +++ b/arch/s390/kernel/smp.c | |||
@@ -234,33 +234,6 @@ void smp_send_stop(void) | |||
234 | } | 234 | } |
235 | 235 | ||
236 | /* | 236 | /* |
237 | * Reboot, halt and power_off routines for SMP. | ||
238 | */ | ||
239 | void machine_restart_smp(char *__unused) | ||
240 | { | ||
241 | smp_send_stop(); | ||
242 | do_reipl(); | ||
243 | } | ||
244 | |||
245 | void machine_halt_smp(void) | ||
246 | { | ||
247 | smp_send_stop(); | ||
248 | if (MACHINE_IS_VM && strlen(vmhalt_cmd) > 0) | ||
249 | __cpcmd(vmhalt_cmd, NULL, 0, NULL); | ||
250 | signal_processor(smp_processor_id(), sigp_stop_and_store_status); | ||
251 | for (;;); | ||
252 | } | ||
253 | |||
254 | void machine_power_off_smp(void) | ||
255 | { | ||
256 | smp_send_stop(); | ||
257 | if (MACHINE_IS_VM && strlen(vmpoff_cmd) > 0) | ||
258 | __cpcmd(vmpoff_cmd, NULL, 0, NULL); | ||
259 | signal_processor(smp_processor_id(), sigp_stop_and_store_status); | ||
260 | for (;;); | ||
261 | } | ||
262 | |||
263 | /* | ||
264 | * This is the main routine where commands issued by other | 237 | * This is the main routine where commands issued by other |
265 | * cpus are handled. | 238 | * cpus are handled. |
266 | */ | 239 | */ |