aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorColin Percival <cperciva@FreeBSD.org>2013-12-03 21:35:25 +0000
committerColin Percival <cperciva@FreeBSD.org>2013-12-03 21:35:25 +0000
commit1cdbb9ed2b771b064b1698bcb1ce02280c2af1bd (patch)
treed701fc04062425101ad73f57356ca6f94a821c12 /sys
parent04c171520ddfc8a30116009894f28678940035b2 (diff)
downloadsrc-1cdbb9ed2b771b064b1698bcb1ce02280c2af1bd.tar.gz
src-1cdbb9ed2b771b064b1698bcb1ce02280c2af1bd.zip
Add a new sysctl / loader tunable kern.panic_reboot_wait_time which
defaults to PANIC_REBOOT_WAIT_TIME (a long-existing kernel config setting). Use this now-variable value in place of the defined constant to control how long the system waits after a panic before rebooting.
Notes
Notes: svn path=/head/; revision=258893
Diffstat (limited to 'sys')
-rw-r--r--sys/kern/kern_shutdown.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/sys/kern/kern_shutdown.c b/sys/kern/kern_shutdown.c
index b120263ec17b..89b2ff0308ed 100644
--- a/sys/kern/kern_shutdown.c
+++ b/sys/kern/kern_shutdown.c
@@ -89,6 +89,11 @@ __FBSDID("$FreeBSD$");
#ifndef PANIC_REBOOT_WAIT_TIME
#define PANIC_REBOOT_WAIT_TIME 15 /* default to 15 seconds */
#endif
+int panic_reboot_wait_time = PANIC_REBOOT_WAIT_TIME;
+SYSCTL_INT(_kern, OID_AUTO, panic_reboot_wait_time, CTLFLAG_RW | CTLFLAG_TUN,
+ &panic_reboot_wait_time, 0,
+ "Seconds to wait before rebooting after a panic");
+TUNABLE_INT("kern.panic_reboot_wait_time", &panic_reboot_wait_time);
/*
* Note that stdarg.h and the ANSI style va_start macro is used for both
@@ -485,12 +490,12 @@ shutdown_panic(void *junk, int howto)
int loop;
if (howto & RB_DUMP) {
- if (PANIC_REBOOT_WAIT_TIME != 0) {
- if (PANIC_REBOOT_WAIT_TIME != -1) {
+ if (panic_reboot_wait_time != 0) {
+ if (panic_reboot_wait_time != -1) {
printf("Automatic reboot in %d seconds - "
"press a key on the console to abort\n",
- PANIC_REBOOT_WAIT_TIME);
- for (loop = PANIC_REBOOT_WAIT_TIME * 10;
+ panic_reboot_wait_time);
+ for (loop = panic_reboot_wait_time * 10;
loop > 0; --loop) {
DELAY(1000 * 100); /* 1/10th second */
/* Did user type a key? */