lkml.org 
[lkml]   [2022]   [Apr]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.17 102/343] scsi: pm8001: Fix pm8001_mpi_task_abort_resp()
    Date
    From: Damien Le Moal <damien.lemoal@opensource.wdc.com>

    [ Upstream commit 7e6b7e740addcea450041b5be8e42f0a4ceece0f ]

    The call to pm8001_ccb_task_free() at the end of
    pm8001_mpi_task_abort_resp() already frees the ccb tag. So when the device
    NCQ_ABORT_ALL_FLAG is set, the tag should not be freed again. Also change
    the hardcoded 0xBFFFFFFF value to ~NCQ_ABORT_ALL_FLAG as it ought to be.

    Link: https://lore.kernel.org/r/20220220031810.738362-19-damien.lemoal@opensource.wdc.com
    Reviewed-by: Jack Wang <jinpu.wang@ionos.com>
    Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/scsi/pm8001/pm8001_hwi.c | 7 +++----
    1 file changed, 3 insertions(+), 4 deletions(-)

    diff --git a/drivers/scsi/pm8001/pm8001_hwi.c b/drivers/scsi/pm8001/pm8001_hwi.c
    index d853e8d0195a..4f4a9dcb6a1e 100644
    --- a/drivers/scsi/pm8001/pm8001_hwi.c
    +++ b/drivers/scsi/pm8001/pm8001_hwi.c
    @@ -3706,12 +3706,11 @@ int pm8001_mpi_task_abort_resp(struct pm8001_hba_info *pm8001_ha, void *piomb)
    mb();

    if (pm8001_dev->id & NCQ_ABORT_ALL_FLAG) {
    - pm8001_tag_free(pm8001_ha, tag);
    sas_free_task(t);
    - /* clear the flag */
    - pm8001_dev->id &= 0xBFFFFFFF;
    - } else
    + pm8001_dev->id &= ~NCQ_ABORT_ALL_FLAG;
    + } else {
    t->task_done(t);
    + }

    return 0;
    }
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-04-12 10:45    [W:3.304 / U:0.380 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site