Catch up with stability fixes to mpr/mps in -current since 12
was branched.
MFC r341755,r342354,r342355,r342386,r342387,r342388,r342526,r342528,
r342530,r342531,r342533,r342534,r342535,r342536,r342659,r345479,
r345485,r345573,r347237,r349849,r349909:
r341755: Copy and clear the reply descriptor atomically. This prevents concurrency in the interrupt handlers (usually due to timeout/error recovery) from seeing and processing the same descriptor twice. r342354: mps(4), mpr(4): Fix lifetime of command buffer for mp?sas_get_sata_identify r342355: mps(4), mpr(4): remove SATA ID command cancellation hack r342386: First step in refactoring and fixing the error recovery and task management code in the mpr and mps drivers. Eliminate duplicated code and fix some comments. r342387: Commands for user-initated device resets should come from the high-priority allocator. Prior to this change, they would leak from the normal allocator. r342388: Further refactoring for task management commands. Also fix a related typo from the previous commit. r342526: Update MPI header files version to 2.00.52 from 2.00.48 r342528: Copy back the Sense data at proper location expected by the application r342530: Added support for NVMe Task Management r342531: Add Sea,Aero adapter support r342533: Enable atomic type descriptor support only for Sea & Aero cards r342534: On Aero/Sea A0 cards retry MPT Fusion registers reads for max three times r342535: Update copyright information r342536: Update mpr driver version to v23.00.00.00-fbsd r342659: Fix whitespace from r342528 r345479: r329522 created problemss with commands that enter the TIMEDOUT state but are successfully returned by the card (usually due to an abort being issued as part of timeout recovery). Remove what amounts to an insufficient KASSERT, and don't overwrite the state value. State should probably be re-designed, and that will be done with a future commit. r345485: Add event table decoding for SAS Broadcast Primitive events. r345573: Add missing break statements. Coverity CID 1400446. r347237: Add missing newline to debug printf. r349849: Fix bugs in recovery path and improve cm tracking r349909: More fully implement the state machine.
Sponsored by: Netflix, Inc