summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkettenis <kettenis@openbsd.org>2008-07-12 08:08:54 +0000
committerkettenis <kettenis@openbsd.org>2008-07-12 08:08:54 +0000
commit47a25911a7733818fcc3aa0a601f5878639cd987 (patch)
tree6bb8983772ca0db529daf5cb427b5026f31e1539
parentAdd macros to get the appropriate interrupt target ID for non-UPA CPUs and (diff)
downloadwireguard-openbsd-47a25911a7733818fcc3aa0a601f5878639cd987.tar.xz
wireguard-openbsd-47a25911a7733818fcc3aa0a601f5878639cd987.zip
On Fujitsu's SPARC64 CPUs, the data_access_error trap is synchronous, and AFSR
will be 0. Check SFSR too, before deciding there's no fault.
-rw-r--r--sys/arch/sparc64/sparc64/trap.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/arch/sparc64/sparc64/trap.c b/sys/arch/sparc64/sparc64/trap.c
index 55fc52eb12b..0a3af9cacea 100644
--- a/sys/arch/sparc64/sparc64/trap.c
+++ b/sys/arch/sparc64/sparc64/trap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: trap.c,v 1.62 2008/04/07 16:21:26 thib Exp $ */
+/* $OpenBSD: trap.c,v 1.63 2008/07/12 08:08:54 kettenis Exp $ */
/* $NetBSD: trap.c,v 1.73 2001/08/09 01:03:01 eeh Exp $ */
/*
@@ -986,7 +986,7 @@ data_access_error(tf, type, afva, afsr, sfva, sfsr)
printf("data error type %x sfsr=%lx sfva=%lx afsr=%lx afva=%lx tf=%p\n",
type, sfsr, sfva, afsr, afva, tf);
- if (afsr == 0) {
+ if (afsr == 0 && sfsr == 0) {
printf("data_access_error: no fault\n");
goto out; /* No fault. Why were we called? */
}