scsi: mpi3mr: Invoke soft reset upon TSU or event ack time out
authorRanjan Kumar <ranjan.kumar@broadcom.com>
Fri, 4 Aug 2023 10:42:43 +0000 (16:12 +0530)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 8 Aug 2023 01:41:47 +0000 (21:41 -0400)
commit9134211f7bed218bc01940fc24ebe8b4bc02b69b
tree684ab2f73d6dd9e33c6c97e9579ee0cb2baccd9e
parent06c2afb862f9da8dc5efa4b6076a0e48c3fbaaa5
scsi: mpi3mr: Invoke soft reset upon TSU or event ack time out

When a timestamp update or an event acknowledgment command times out, the
driver invokes the soft reset handler to recover the controller while
holding a mutex lock. The soft reset handler also tries to acquire the same
mutex to send initialization commands to the controller which leads to a
deadlock scenario.

To resolve the issue the driver will check thestatus and if this indicates
the controller is operational, the driver will issue a diagnostic fault
reset and exit out of the command processing function. If the controller is
already faulted or asynchronously reset, then the driver will just exit the
command processing function.

Signed-off-by: Ranjan Kumar <ranjan.kumar@broadcom.com>
Link: https://lore.kernel.org/r/20230804104248.118924-2-ranjan.kumar@broadcom.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/mpi3mr/mpi3mr_fw.c