aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/dev/ioat/ioat.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/dev/ioat/ioat.c b/sys/dev/ioat/ioat.c
index 68c207a953f6..a434b4225348 100644
--- a/sys/dev/ioat/ioat.c
+++ b/sys/dev/ioat/ioat.c
@@ -747,6 +747,12 @@ out:
wakeup(&ioat->tail);
}
+ /*
+ * The device doesn't seem to reliably push suspend/halt statuses to
+ * the channel completion memory address, so poll the device register
+ * here.
+ */
+ comp_update = ioat_get_chansts(ioat) & IOAT_CHANSTS_STATUS;
if (!is_ioat_halted(comp_update) && !is_ioat_suspended(comp_update))
return;