is_completion_pending governs whether or not a callout will be scheduled when new work is queued on the IOAT device. If true, a callout is already scheduled, so we do not need a new one. If false, we schedule one and set it true. Because resetting the hardware completed all outstanding work but failed to clear is_completion_pending, no new callout could be scheduled after a reset with pending work. This resulted in a driver hang for polled-only work. |
||
---|---|---|
.. | ||
ioat_hw.h | ||
ioat_internal.h | ||
ioat_test.c | ||
ioat_test.h | ||
ioat.c | ||
ioat.h |