summaryrefslogtreecommitdiff
path: root/sys/arch
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>1995-11-14 13:24:59 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>1995-11-14 13:24:59 +0000
commitb0cc3f3395adf89e793558ec44f1b71ac813e9da (patch)
tree6940ad573d8c4f517d1160ecdd9f3a88edf15535 /sys/arch
parentc47a4413fa5063f711563ad881882f4a67b9ab55 (diff)
clear pv_synchook if we halt; thus prom "sync" command will not do the wrong thing
Diffstat (limited to 'sys/arch')
-rw-r--r--sys/arch/sparc/sparc/machdep.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/sys/arch/sparc/sparc/machdep.c b/sys/arch/sparc/sparc/machdep.c
index 9a479540101..beb7244f608 100644
--- a/sys/arch/sparc/sparc/machdep.c
+++ b/sys/arch/sparc/sparc/machdep.c
@@ -75,6 +75,7 @@
#include <sys/exec.h>
#include <sys/sysctl.h>
+#include <machine/bsd_openprom.h>
#include <machine/autoconf.h>
#include <machine/frame.h>
#include <machine/cpu.h>
@@ -606,6 +607,7 @@ boot(howto)
static char str[4]; /* room for "-sd\0" */
extern volatile void romhalt(void);
extern volatile void romboot(char *);
+ extern struct promvec *promvec;
fb_unblank();
boothowto = howto;
@@ -627,8 +629,13 @@ boot(howto)
resettodr();
}
(void) splhigh(); /* ??? */
+
if (howto & RB_HALT) {
printf("halted\n\n");
+#if defined(SUN4M) || defined(SUN4C)
+ if (cputyp==CPU_SUN4M || cputyp==CPU_SUN4C)
+ *promvec->pv_synchook = NULL;
+#endif
romhalt();
}
if (howto & RB_DUMP)
@@ -644,6 +651,10 @@ boot(howto)
str[i] = 0;
} else
str[0] = 0;
+#if defined(SUN4M) || defined(SUN4C)
+ if (cputyp==CPU_SUN4M || cputyp==CPU_SUN4C)
+ *promvec->pv_synchook = NULL;
+#endif
romboot(str);
/*NOTREACHED*/
}