Patch "scsi: smartpqi: Fix DMA direction for RAID requests" has been added to the 5.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: smartpqi: Fix DMA direction for RAID requests

to the 5.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-smartpqi-fix-dma-direction-for-raid-requests.patch
and it can be found in the queue-5.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 29f3ec346f8556c4a3f203894fac9414831f38bb
Author: Mahesh Rajashekhara <Mahesh.Rajashekhara@xxxxxxxxxxxxx>
Date:   Fri Jul 8 13:47:36 2022 -0500

    scsi: smartpqi: Fix DMA direction for RAID requests
    
    [ Upstream commit 69695aeaa6621bc49cdd7a8e5a8d1042461e496e ]
    
    Correct a SOP READ and WRITE DMA flags for some requests.
    
    This update corrects DMA direction issues with SCSI commands removed from
    the controller's internal lookup table.
    
    Currently, SCSI READ BLOCK LIMITS (0x5) was removed from the controller
    lookup table and exposed a DMA direction flag issue.
    
    SCSI READ BLOCK LIMITS was recently removed from our controller lookup
    table so the controller uses the respective IU flag field to set the DMA
    data direction. Since the DMA direction is incorrect the FW never completes
    the request causing a hang.
    
    Some SCSI commands which use SCSI READ BLOCK LIMITS
    
          * sg_map
          * mt -f /dev/stX status
    
    After updating controller firmware, users may notice their tape units
    failing. This patch resolves the issue.
    
    Also, the AIO path DMA direction is correct.
    
    The DMA direction flag is a day-one bug with no reported BZ.
    
    Fixes: 6c223761eb54 ("smartpqi: initial commit of Microsemi smartpqi driver")
    Link: https://lore.kernel.org/r/165730605618.177165.9054223644512926624.stgit@brunhilda
    Reviewed-by: Scott Benesh <scott.benesh@xxxxxxxxxxxxx>
    Reviewed-by: Scott Teel <scott.teel@xxxxxxxxxxxxx>
    Reviewed-by: Mike McGowen <mike.mcgowen@xxxxxxxxxxxxx>
    Reviewed-by: Kevin Barnett <kevin.barnett@xxxxxxxxxxxxx>
    Signed-off-by: Mahesh Rajashekhara <Mahesh.Rajashekhara@xxxxxxxxxxxxx>
    Signed-off-by: Don Brace <don.brace@xxxxxxxxxxxxx>
    Signed-off-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/scsi/smartpqi/smartpqi_init.c b/drivers/scsi/smartpqi/smartpqi_init.c
index 80ff00025c03..540d6eb2cc48 100644
--- a/drivers/scsi/smartpqi/smartpqi_init.c
+++ b/drivers/scsi/smartpqi/smartpqi_init.c
@@ -5018,10 +5018,10 @@ static int pqi_raid_submit_scsi_cmd_with_io_request(
 	}
 
 	switch (scmd->sc_data_direction) {
-	case DMA_TO_DEVICE:
+	case DMA_FROM_DEVICE:
 		request->data_direction = SOP_READ_FLAG;
 		break;
-	case DMA_FROM_DEVICE:
+	case DMA_TO_DEVICE:
 		request->data_direction = SOP_WRITE_FLAG;
 		break;
 	case DMA_NONE:



[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