Patch "scsi: pm80xx: Fix for SATA device discovery" has been added to the 4.4-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    scsi: pm80xx: Fix for SATA device discovery

to the 4.4-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-pm80xx-fix-for-sata-device-discovery.patch
and it can be found in the queue-4.4 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit c0229757bbd6a31218349c02d878a32eff769ad3
Author: peter chang <dpf@xxxxxxxxxx>
Date:   Thu Nov 14 15:38:58 2019 +0530

    scsi: pm80xx: Fix for SATA device discovery
    
    [ Upstream commit ce21c63ee995b7a8b7b81245f2cee521f8c3c220 ]
    
    Driver was missing complete() call in mpi_sata_completion which result in
    SATA abort error handling timing out. That causes the device to be left in
    the in_recovery state so subsequent commands sent to the device fail and
    the OS removes access to it.
    
    Link: https://lore.kernel.org/r/20191114100910.6153-2-deepak.ukey@xxxxxxxxxxxxx
    Acked-by: Jack Wang <jinpu.wang@xxxxxxxxxxxxxxx>
    Signed-off-by: peter chang <dpf@xxxxxxxxxx>
    Signed-off-by: Deepak Ukey <deepak.ukey@xxxxxxxxxxxxx>
    Signed-off-by: Viswas G <Viswas.G@xxxxxxxxxxxxx>
    Signed-off-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/scsi/pm8001/pm80xx_hwi.c b/drivers/scsi/pm8001/pm80xx_hwi.c
index 9edd61c063a1..df5f0bc29587 100644
--- a/drivers/scsi/pm8001/pm80xx_hwi.c
+++ b/drivers/scsi/pm8001/pm80xx_hwi.c
@@ -2368,6 +2368,8 @@ mpi_sata_completion(struct pm8001_hba_info *pm8001_ha, void *piomb)
 			pm8001_printk("task 0x%p done with io_status 0x%x"
 			" resp 0x%x stat 0x%x but aborted by upper layer!\n",
 			t, status, ts->resp, ts->stat));
+		if (t->slow_task)
+			complete(&t->slow_task->completion);
 		pm8001_ccb_task_free(pm8001_ha, t, ccb, tag);
 	} else {
 		spin_unlock_irqrestore(&t->task_state_lock, flags);



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux