diff options
author | Miod Vallat <miod@cvs.openbsd.org> | 2009-02-18 20:46:38 +0000 |
---|---|---|
committer | Miod Vallat <miod@cvs.openbsd.org> | 2009-02-18 20:46:38 +0000 |
commit | a98a29df1941c7a3c749a5f814f6c62527fa2400 (patch) | |
tree | a782fa2b8ab81579e73dd381b8e7ee655f7dea45 /sys | |
parent | b0343edffc74b08206cc7b3f83a82a2f2a988b53 (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.s | 7 |
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 |