aboutsummaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authorXin LI <delphij@FreeBSD.org>2011-11-17 11:16:56 +0000
committerXin LI <delphij@FreeBSD.org>2011-11-17 11:16:56 +0000
commitfaf0d98e4f11111bdb06efb138877360817672bb (patch)
tree04766cee53316a6ed8262114006d97d1068fe70f /sys/dev
parent26cdb82d9b4fa476826c311f7171aec0128b8a40 (diff)
Notes
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/mfi/mfi.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/dev/mfi/mfi.c b/sys/dev/mfi/mfi.c
index e737391497a8..c15985a3bc71 100644
--- a/sys/dev/mfi/mfi.c
+++ b/sys/dev/mfi/mfi.c
@@ -932,6 +932,12 @@ mfi_intr(void *arg)
if (sc->mfi_check_clear_intr(sc))
return;
+ /*
+ * Do a dummy read to flush the interrupt ACK that we just performed,
+ * ensuring that everything is really, truly consistent.
+ */
+ (void)sc->mfi_read_fw_status(sc);
+
pi = sc->mfi_comms->hw_pi;
ci = sc->mfi_comms->hw_ci;
mtx_lock(&sc->mfi_io_lock);