summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_shutdown.c
diff options
context:
space:
mode:
authorsobomax <sobomax@FreeBSD.org>2002-01-21 01:16:11 +0000
committersobomax <sobomax@FreeBSD.org>2002-01-21 01:16:11 +0000
commit4e0549db5573bd438ce183a3604b25b9ee373c32 (patch)
tree797223f639fe4f7e38b0645d11503b107b19512e /sys/kern/kern_shutdown.c
parent149d99c26eff591dab1ec3964744640075e3d7cb (diff)
downloadFreeBSD-src-4e0549db5573bd438ce183a3604b25b9ee373c32.zip
FreeBSD-src-4e0549db5573bd438ce183a3604b25b9ee373c32.tar.gz
Allow dump device be configured as early as possible using loader(8) tunable.
This allows obtaining crash dumps from the panics occured during late stages of kernel initialisation before system enters into single-user mode. MFC after: 2 weeks
Diffstat (limited to 'sys/kern/kern_shutdown.c')
-rw-r--r--sys/kern/kern_shutdown.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/sys/kern/kern_shutdown.c b/sys/kern/kern_shutdown.c
index 9263af9..d0cfe6e 100644
--- a/sys/kern/kern_shutdown.c
+++ b/sys/kern/kern_shutdown.c
@@ -54,6 +54,7 @@
#include <sys/eventhandler.h>
#include <sys/kernel.h>
#include <sys/kthread.h>
+#include <sys/malloc.h>
#include <sys/mount.h>
#include <sys/proc.h>
#include <sys/reboot.h>
@@ -457,6 +458,16 @@ setdumpdev(dev_t dev)
static void
dump_conf(void *dummy)
{
+ char *path;
+ dev_t dev;
+
+ path = malloc(MNAMELEN, M_TEMP, M_WAITOK);
+ if (TUNABLE_STR_FETCH("dumpdev", path, MNAMELEN) != 0) {
+ dev = getdiskbyname(path);
+ if (dev != NODEV)
+ dumpdev = dev;
+ }
+ free(path, M_TEMP);
if (setdumpdev(dumpdev) != 0)
dumpdev = NODEV;
}
OpenPOWER on IntegriCloud