Copy the sense data to internal driver buffer when the firmware completes
any SCSI I/O command sent through admin queue with sense data for further
use.
Fixes: 506bc1a0d6ba ("scsi: mpi3mr: Add support for MPT commands")
Cc: <email address hidden>
Signed-off-by: Sathya Prakash <email address hidden>
Signed-off-by: Sumit Saxena <email address hidden>
Link: https://<email address hidden>
Signed-off-by: Martin K. Petersen <email address hidden>
(cherry picked from commit f762326b2baa86ae647e2ba6832bc87e238f68ad)
Signed-off-by: Michael Reed <email address hidden>
Driver uses spin lock without irqsave when it needs to acquire a chain
frame. This is done to protect chain frame allocation from multiple
submission threads. If there is any I/O queued from an interrupt context,
and if that requires a chain frame, and if the chain lock is held by the CPU
which got interrupted, then there will be a possible deadlock.
Signed-off-by: Ranjan Kumar <email address hidden>
Link: https://<email address hidden>
Signed-off-by: Martin K. Petersen <email address hidden>
(cherry picked from commit 2acc635a0e5e91c267f2cb1c25748e8d06888e63)
Signed-off-by: Michael Reed <email address hidden>
The driver is exiting from the fault watchdog thread if it sees the 0xF002
(Soft reset in progress) fault code.
If the driver initiates the soft reset, then the driver restarts the
watchdog at the end of the soft reset completion. However, if the soft
reset is initiated by the firmware asynchronously, then the driver will
never restart the watchdog and never re-initialize the controller after the
asynchronous soft reset completion.
Signed-off-by: Ranjan Kumar <email address hidden>
Link: https://<email address hidden>
Signed-off-by: Martin K. Petersen <email address hidden>
(cherry picked from commit a3d27dfdcfc27ac3f46de5391bb6d24f04af7941)
Signed-off-by: Michael Reed <email address hidden>