summaryrefslogtreecommitdiffstats
path: root/kernel/panic.c
diff options
context:
space:
mode:
authorHugh Dickins <hughd@chromium.org>2011-07-26 16:08:52 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2011-07-26 16:49:45 -0700
commit4302fbc8ec2ccae279c939f241bf8ce64e1a0bb7 (patch)
tree01b7bfa2388d7996fee86c6a4e291605d2303530 /kernel/panic.c
parent3f0fb4e85b3842a2606c647c0a66afe2073574b4 (diff)
downloadlinux-stable-4302fbc8ec2ccae279c939f241bf8ce64e1a0bb7.tar.gz
linux-stable-4302fbc8ec2ccae279c939f241bf8ce64e1a0bb7.tar.bz2
linux-stable-4302fbc8ec2ccae279c939f241bf8ce64e1a0bb7.zip
panic: panic=-1 for immediate reboot
When a kernel BUG or oops occurs, ChromeOS intends to panic and immediately reboot, with stacktrace and other messages preserved in RAM across reboot. But the longer we delay, the more likely the user is to poweroff and lose the info. panic_timeout (seconds before rebooting) is set by panic= boot option or sysctl or /proc/sys/kernel/panic; but 0 means wait forever, so at present we have to delay at least 1 second. Let a negative number mean reboot immediately (with the small cosmetic benefit of suppressing that newline-less "Rebooting in %d seconds.." message). Signed-off-by: Hugh Dickins <hughd@chromium.org> Signed-off-by: Mandeep Singh Baines <msb@chromium.org> Cc: Huang Ying <ying.huang@intel.com> Cc: Andi Kleen <ak@linux.intel.com> Cc: Hugh Dickins <hughd@google.com> Cc: Olaf Hering <olaf@aepfle.de> Cc: Jesse Barnes <jbarnes@virtuousgeek.org> Cc: Dave Airlie <airlied@gmail.com> Cc: Greg Kroah-Hartman <gregkh@suse.de> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel/panic.c')
-rw-r--r--kernel/panic.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/panic.c b/kernel/panic.c
index 69231670eb95..d7bb6974efb5 100644
--- a/kernel/panic.c
+++ b/kernel/panic.c
@@ -119,6 +119,8 @@ NORET_TYPE void panic(const char * fmt, ...)
}
mdelay(PANIC_TIMER_STEP);
}
+ }
+ if (panic_timeout != 0) {
/*
* This will not be a clean reboot, with everything
* shutting down. But if there is a chance of