summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2009-02-18 20:46:38 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2009-02-18 20:46:38 +0000
commita98a29df1941c7a3c749a5f814f6c62527fa2400 (patch)
treea782fa2b8ab81579e73dd381b8e7ee655f7dea45 /sys
parentb0343edffc74b08206cc7b3f83a82a2f2a988b53 (diff)
Check for nofault being set in the 68030 bus error handler, too. This makes
bad[pv]addr work again on MVME147.
Diffstat (limited to 'sys')
-rw-r--r--sys/arch/mvme68k/mvme68k/locore.s7
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/arch/mvme68k/mvme68k/locore.s b/sys/arch/mvme68k/mvme68k/locore.s
index 7c27c9c3295..6e45a51b07e 100644
--- a/sys/arch/mvme68k/mvme68k/locore.s
+++ b/sys/arch/mvme68k/mvme68k/locore.s
@@ -1,4 +1,4 @@
-/* $OpenBSD: locore.s,v 1.56 2009/02/18 20:45:49 miod Exp $ */
+/* $OpenBSD: locore.s,v 1.57 2009/02/18 20:46:37 miod Exp $ */
/*
* Copyright (c) 1995 Theo de Raadt
@@ -785,6 +785,11 @@ Lisaerr:
jra _ASM_LABEL(faultstkadj) | and deal with it
Lisberr1:
clrw sp@ | re-clear pad word
+ tstl _C_LABEL(nofault) | device probe?
+ jeq Lisberr | it is a bus error
+ movl _C_LABEL(nofault),sp@- | yes,
+ jbsr _C_LABEL(longjmp) | longjmp(nofault)
+ /* NOTREACHED */
Lisberr:
movl #T_BUSERR,sp@- | mark bus error
jra _ASM_LABEL(faultstkadj) | and deal with it