freebsd-nq/sys/dev/mpr
Warner Losh a8837c77ef 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
2021-11-21 08:54:45 -07:00
..
mpi mpr: clean up empty lines in .c and .h files 2020-09-01 22:07:12 +00:00
mpr_config.c mpr: big-endian support 2021-03-02 22:21:42 -03:00
mpr_ioctl.h mpr: clean up empty lines in .c and .h files 2020-09-01 22:07:12 +00:00
mpr_mapping.c mpr/mps(4): Make device mapping some more robust. 2021-04-23 23:36:51 -04:00
mpr_mapping.h
mpr_pci.c Refine the busdma template interface. Provide tools for filling in fields 2020-09-14 05:58:12 +00:00
mpr_sas_lsi.c mpr(4): Handle mprsas_alloc_tm() errors on device removal. 2021-08-20 10:03:32 -04:00
mpr_sas.c mpr: fix freeze / release mismatch in timeout code 2021-11-21 08:54:45 -07:00
mpr_sas.h mpr(4): Handle mprsas_alloc_tm() errors on device removal. 2021-08-20 10:03:32 -04:00
mpr_table.c mpr: big-endian support 2021-03-02 22:21:42 -03:00
mpr_table.h
mpr_user.c mpr, mps: Fix an off-by-one bug in the BTDH_MAPPING ioctl 2021-01-08 13:32:05 -05:00
mpr.c Mark some sysctls as CTLFLAG_MPSAFE. 2021-08-10 20:44:27 -04:00
mprvar.h mpr(4): Handle mprsas_alloc_tm() errors on device removal. 2021-08-20 10:03:32 -04:00