]> git.baikalelectronics.ru Git - kernel.git/commit
scsi: ufs: Properly release resources if a task is aborted successfully
authorCan Guo <cang@codeaurora.org>
Sun, 9 Aug 2020 12:15:55 +0000 (05:15 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Fri, 21 Aug 2020 01:41:25 +0000 (21:41 -0400)
commit08a0f5be72c55923fd908409af71e34680e7360b
tree9bbb2330752b4f6be9a31585046376517fc75239
parent438ef59c051c19ec0744126cf5d364d0a03bed75
scsi: ufs: Properly release resources if a task is aborted successfully

In current UFS task abort hook, namely ufshcd_abort(), if one task is
aborted successfully, clk_gating.active_reqs held by this task is not
decreased, which makes clk_gating.active_reqs stay above zero forever, thus
clock gating would never happen. Instead of releasing resources of one task
"manually", use the existing func __ufshcd_transfer_req_compl().  This
change also eliminates a possible race of scsi_dma_unmap() from the real
completion in IRQ handler path.

Link: https://lore.kernel.org/r/1596975355-39813-10-git-send-email-cang@codeaurora.org
Fixes: f5e8e7fd68bd ("ufs: Add support for clock gating")
CC: Stanley Chu <stanley.chu@mediatek.com>
Reviewed-by: Stanley Chu <stanley.chu@mediatek.com>
Reviewed-by: Asutosh Das <asutoshd@codeaurora.org>
Signed-off-by: Can Guo <cang@codeaurora.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/ufs/ufshcd.c