Eliminate the TIMEDOUT state. This state really conveyed two different concepts: I timed out during recovery (and my command got put on the recovery queue), and I timed out diring discovery (which doesn't). Separate those two concepts into two flags. Use the TIMEDOUT flag to fail requests as timed out. Use the on queue flag to remove them from the queue. In mps_intr_locked for MPI2_RPY_DESCRIPT_FLAGS_ADDRESS_REPLY message type, when completing commands, ignore the ones that are not in state INQUEUE. They were already completed as part of the recovery process. When we complete them twice, we wind up with entries on the free queue that are marked as busy, trigging asserts. Reviewed by: scottl (earlier version, just for mpr) Differential Revision: https://reviews.freebsd.org/D20785 |
||
---|---|---|
.. | ||
mpi | ||
mps_config.c | ||
mps_ioctl.h | ||
mps_mapping.c | ||
mps_mapping.h | ||
mps_pci.c | ||
mps_sas_lsi.c | ||
mps_sas.c | ||
mps_sas.h | ||
mps_table.c | ||
mps_table.h | ||
mps_user.c | ||
mps.c | ||
mpsvar.h |