HomeFreeBSD

ioat(4): Allow callouts to be scheduled after hw reset

Description

ioat(4): Allow callouts to be scheduled after hw reset

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.

Details

Provenance
cemAuthored on
Parents
rS304602: ioat(4): Don't process events past queue head
Branches
Unknown
Tags
Unknown