Message ID | 20210929070047.4223-3-powen.kao@mediatek.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Fix UFS task management command timeout | expand |
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index 3841ab49f556..7a1ea42302b8 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -6428,7 +6428,7 @@ static irqreturn_t ufshcd_tmc_handler(struct ufs_hba *hba) spin_lock_irqsave(hba->host->host_lock, flags); ci.pending = ufshcd_readl(hba, REG_UTP_TASK_REQ_DOOR_BELL); - blk_mq_tagset_busy_iter(q->tag_set, ufshcd_compl_tm, &ci); + blk_mq_drv_tagset_busy_iter(q->tag_set, ufshcd_compl_tm, &ci); spin_unlock_irqrestore(hba->host->host_lock, flags); return ci.ncpl ? IRQ_HANDLED : IRQ_NONE;
TM command issued by ufshcd_issue_tm_cmd() inevitably timeout since interrupt handler iterates wrong request list for completion. The issue is fixed by iterating static_rqs instead of rqs to find requests with new interface blk_mq_drv_tagset_busy_iter(). Signed-off-by: Po-Wen Kao <powen.kao@mediatek.com> --- drivers/scsi/ufs/ufshcd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)