Commit b6d47811 authored by Kevin Barnett's avatar Kevin Barnett Committed by Martin K. Petersen

scsi: smartpqi: update kexec and power down support

Add PQI reset to driver shutdown callback to work around controller bug.

During an 1.) OS shutdown or 2.) kexec outside of a kdump, the Linux
kernel will clear BME on our controller.

If BME is cleared during a controller/host PCIe transfer, the controller
will lock up.

So we perform a PQI reset in the driver's shutdown callback function to
eliminate the possibility of a controller/host PCIe transfer being
active when the kernel clears BME immediately after calling the driver's
shutdown callback.
Reviewed-by: default avatarScott Benesh <scott.benesh@microsemi.com>
Signed-off-by: default avatarKevin Barnett <kevin.barnett@microsemi.com>
Signed-off-by: default avatarDon Brace <don.brace@microsemi.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 4f078e24
...@@ -6700,6 +6700,7 @@ static void pqi_shutdown(struct pci_dev *pci_dev) ...@@ -6700,6 +6700,7 @@ static void pqi_shutdown(struct pci_dev *pci_dev)
* storage. * storage.
*/ */
rc = pqi_flush_cache(ctrl_info, SHUTDOWN); rc = pqi_flush_cache(ctrl_info, SHUTDOWN);
pqi_reset(ctrl_info);
if (rc == 0) if (rc == 0)
return; return;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment