HomeFreeBSD

ioat(4): Fix race between process_events and reset_hw

Description

ioat(4): Fix race between process_events and reset_hw

In the case where a hardware error is detected during
ioat_process_events, hardware may advance (by one descriptor, probably)
and a subsequent ioat_process_events may race the intended ioat_reset_hw
followup. In that case, the second process_events would observe a
completion update that does not match the software "last_seen" status,
and attempt to successfully complete already-failed descriptors.

Guard against this race with the resetting_cleanup flag.

Reviewed by: bdrewery, markj
Sponsored by: Dell EMC Isilon

Details

Provenance
cemAuthored on
Reviewer
bdrewery
Parents
rS308552: MFC r308025:
Branches
Unknown
Tags
Unknown