smartpqi: Maintenance commit of Microchip smartpqi
Newly added features and bug fixes in latest Microchip SmartPQI driver.
- Newly added TMF feature.
- Added newly Huawei & Inspur PCI ID's
- Fixed smartpqi driver hangs in Z-Pool while running on FreeBSD12.1
- Fixed flooding dmesg in kernel while the controller is offline during in ioctls.
- Avoided unnecessary host memory allocation for rcb sg buffers.
- Fixed race conditions while accessing internal rcb structure.
- Fixed where Logical volumes exposing two different names to the OS it's due to the system memory is overwritten with DMA stale data.
- Fixed dynamically unloading a smartpqi driver.
- Added device_shutdown callback instead of deprecated shutdown_final kernel event in smartpqi driver.
- Fixed where Os is crashed during physical drive hot removal during heavy IO.
- Fixed OS crash during controller lockup/offline during heavy IO.
- Fixed coverity issues in smartpqi driver
- Fixed system crash while creating and deleting logical volume in a continuous loop.
- Fixed where the volume size is not exposing to OS when it expands.
- Added HC3 pci id's.
- Fixed compiler issues in 12.2 kernel.
Note: this is a direct commit, submitted by the vendor to support
stable/12
Reviewed by: imp, Murthy Bhat, Scott Benesh
Differential Revision: https://reviews.freebsd.org/D24428