summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgallatin <gallatin@FreeBSD.org>2001-04-08 16:43:59 +0000
committergallatin <gallatin@FreeBSD.org>2001-04-08 16:43:59 +0000
commit35ffa3254cc6f92e0c3e9b5516616fdb50ff5f4c (patch)
treee49442c8b62e1b87ae38714de99ad67ba7a2bdea
parent6ca32ea5067447533fd6c862d8c6ba02f7dd58dd (diff)
downloadFreeBSD-src-35ffa3254cc6f92e0c3e9b5516616fdb50ff5f4c.zip
FreeBSD-src-35ffa3254cc6f92e0c3e9b5516616fdb50ff5f4c.tar.gz
insert a magical second memory barrier prior to calling draina() in
badaddr_read(). This fixes 'machine check in pal mode' halts on ev5 2100As. MFC candidate -- after spending 6 hours tracking this down, I checked and discovered that it has been in NetBSD for over a year, so it should be safe for MFC into 4.3-RELEASE
-rw-r--r--sys/alpha/alpha/interrupt.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/alpha/alpha/interrupt.c b/sys/alpha/alpha/interrupt.c
index e33f9d5..59c701b 100644
--- a/sys/alpha/alpha/interrupt.c
+++ b/sys/alpha/alpha/interrupt.c
@@ -283,6 +283,7 @@ badaddr_read(addr, size, rptr)
panic("badaddr: invalid size (%ld)\n", size);
}
alpha_mb();
+ alpha_mb(); /* magic for ev5 2100A & maybe more */
/* Make sure we took the machine check, if we caused one. */
alpha_pal_draina();
OpenPOWER on IntegriCloud