summaryrefslogtreecommitdiff
path: root/sys/arch/alpha
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>2011-06-26 22:40:01 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>2011-06-26 22:40:01 +0000
commitfaf5f1c428343fb3b63d0d5c8e1f3281e5fb096a (patch)
treef68032641ab88713a1e6a1d4e8db85a94c44fa65 /sys/arch/alpha
parente4406dbd9a603957bda0912007302178f3920008 (diff)
if_downall() cannot be done MI in sys_reboot() because vfs_shutdown()
might need network (ie. nfs). Move the call to the MD boot() routines. This cause for boot hangs diagnosed by kettenis.
Diffstat (limited to 'sys/arch/alpha')
-rw-r--r--sys/arch/alpha/alpha/machdep.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/sys/arch/alpha/alpha/machdep.c b/sys/arch/alpha/alpha/machdep.c
index 3e88b32afe3..8cb988c406d 100644
--- a/sys/arch/alpha/alpha/machdep.c
+++ b/sys/arch/alpha/alpha/machdep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: machdep.c,v 1.132 2011/06/05 19:41:06 deraadt Exp $ */
+/* $OpenBSD: machdep.c,v 1.133 2011/06/26 22:39:58 deraadt Exp $ */
/* $NetBSD: machdep.c,v 1.210 2000/06/01 17:12:38 thorpej Exp $ */
/*-
@@ -63,6 +63,7 @@
#include <sys/signalvar.h>
#include <sys/kernel.h>
#include <sys/proc.h>
+#include <sys/socket.h>
#include <sys/sched.h>
#include <sys/buf.h>
#include <sys/reboot.h>
@@ -78,10 +79,13 @@
#include <sys/user.h>
#include <sys/exec.h>
#include <sys/exec_ecoff.h>
-#include <uvm/uvm.h>
#include <sys/sysctl.h>
#include <sys/core.h>
#include <sys/kcore.h>
+
+#include <net/if.h>
+#include <uvm/uvm.h>
+
#include <machine/kcore.h>
#ifndef NO_IEEE
#include <machine/fpu.h>
@@ -1013,6 +1017,7 @@ boot(howto)
printf("WARNING: not updating battery clock\n");
}
}
+ if_downall();
uvm_shutdown();
splhigh(); /* Disable interrupts. */