HomeFreeBSD

mpr: fix freeze / release mismatch in timeout code

Description

mpr: fix freeze / release mismatch in timeout code

So, if we're processing a timeout, and we've sent an ABORT to the
firmware for that timeout, but not yet received the response from the
firmware, AND we get another timeout, we queue the timeout and freeze
the queue. However, when we've finally processed them all, we only
release the queue once. This causes all I/O to halt as the devq remains
frozen forever.

Instead, only freeze the queue when we start the process (eg set INRESET
on the target). This will allow the release when all the timed out I/Os
have finished ABORTing.

Sponsored by: Netflix
Reviewed by: mav
Differential Revision: https://reviews.freebsd.org/D33054

Details

Provenance
impAuthored on Nov 21 2021, 3:50 PM
Reviewer
mav
Differential Revision
D33054: mpr: fix freeze / release mismatch in timeout code
Parents
rG036af1053acd: mkimg: zero entry in vhdx_write_metadata
Branches
Unknown
Tags
Unknown