diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2005-07-26 13:29:55 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-07-26 17:35:41 -0400 |
commit | 7c9034735eccbf82608a4602c59aaf6053ea9416 (patch) | |
tree | 219e8cd4b5cfffeb261f42a2bd8e512be19cba40 /kernel | |
parent | abcd9e51f5b832439b119d530db1353c12fd4073 (diff) |
[PATCH] Add emergency_restart()
When the kernel is working well and we want to restart cleanly
kernel_restart is the function to use. But in many instances
the kernel wants to reboot when thing are expected to be working
very badly such as from panic or a software watchdog handler.
This patch adds the function emergency_restart() so that
callers can be clear what semantics they expect when calling
restart. emergency_restart() is expected to be callable
from interrupt context and possibly reliable in even more
trying circumstances.
This is an initial generic implementation for all architectures.
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/sys.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/kernel/sys.c b/kernel/sys.c index 31ac41a73329..a74039036fb4 100644 --- a/kernel/sys.c +++ b/kernel/sys.c | |||
@@ -361,6 +361,12 @@ out_unlock: | |||
361 | return retval; | 361 | return retval; |
362 | } | 362 | } |
363 | 363 | ||
364 | void emergency_restart(void) | ||
365 | { | ||
366 | machine_emergency_restart(); | ||
367 | } | ||
368 | EXPORT_SYMBOL_GPL(emergency_restart); | ||
369 | |||
364 | void kernel_restart(char *cmd) | 370 | void kernel_restart(char *cmd) |
365 | { | 371 | { |
366 | notifier_call_chain(&reboot_notifier_list, SYS_RESTART, cmd); | 372 | notifier_call_chain(&reboot_notifier_list, SYS_RESTART, cmd); |