Patch "scsi: mpt3sas: Unblock device after controller reset" has been added to the 4.8-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
scsi: mpt3sas: Unblock device after controller reset
to the 4.8-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
scsi-mpt3sas-unblock-device-after-controller-reset.patch
and it can be found in the queue-4.8 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
7ff723ad0f87feba43dda45fdae71206063dd7d4Mon Sep 17 00:00:00 2001
From: Suganath Prabu S <[email protected]>
Date: Thu, 17 Nov 2016 16:15:58 +0530
Subject: scsi: mpt3sas: Unblock device after controller reset
From: Suganath Prabu S <[email protected]>
commit 7ff723ad0f87feba43dda45fdae71206063dd7d4 upstream.
While issuing any ATA passthrough command to firmware the driver will block the device. But it will unblock the device only if the I/O completes through the ISR path. If a controller reset occurs before command completion the device will remain in blocked state.
Make sure we unblock the device following a controller reset if an ATA passthrough command was queued.
[mkp: clarified patch description]
--- drivers/scsi/mpt3sas/mpt3sas_scsih.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-)
drivers/scsi/mpt3sas/mpt3sas_scsih.c +8 -5
@@ -3894,6 +3894,11 @@ _scsih_temp_threshold_events(struct MPT3 } } +static inline bool ata_12_16_cmd (struct scsi_cmnd *scmd) +{ +return (scmd->cmnd[0 ] ==ATA_12 || scmd->cmnd[0 ] ==ATA_16 ); +} +/** * _scsih_flush_running_cmds - completing outstanding commands. * @ioc: per adapter object
@@ -3915,6 +3920,9 @@ _scsih_flush_running_cmds(struct MPT3SASif (!scmd)continue ; count++; +if (ata_12_16_cmd (scmd)) +scsi_internal_device_unblock (scmd->device, +SDEV_RUNNING );mpt3sas_base_free_smid (ioc, smid);scsi_dma_unmap (scmd);if (ioc->pci_error_recovery)
@@ -4019,11 +4027,6 @@ _scsih_eedp_error_handling(struct scsi_cSAM_STAT_CHECK_CONDITION ; } -static inline bool ata_12_16_cmd (struct scsi_cmnd *scmd) -{ -return (scmd->cmnd[0 ] ==ATA_12 || scmd->cmnd[0 ] ==ATA_16 ); -} -/** * scsih_qcmd - main scsi request entry point * @scmd: pointer to scsi command object
Patches currently in stable-queue which might be from [email protected] are
queue-4.8/scsi-mpt3sas-fix-secure-erase-premature-termination.patch queue-4.8/scsi-mpt3sas-unblock-device-after-controller-reset.patch