diff options
author | sobomax <sobomax@FreeBSD.org> | 2002-01-21 01:16:11 +0000 |
---|---|---|
committer | sobomax <sobomax@FreeBSD.org> | 2002-01-21 01:16:11 +0000 |
commit | 4e0549db5573bd438ce183a3604b25b9ee373c32 (patch) | |
tree | 797223f639fe4f7e38b0645d11503b107b19512e /sys/kern/kern_shutdown.c | |
parent | 149d99c26eff591dab1ec3964744640075e3d7cb (diff) | |
download | FreeBSD-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.c | 11 |
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; } |