lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Wed, 29 Sep 2021 15:00:47 +0800
From:   Po-Wen Kao <powen.kao@...iatek.com>
To:     <linux-block@...r.kernel.org>, <axboe@...nel.dk>,
        <linux-kernel@...r.kernel.org>, <stanley.chu@...iatek.com>,
        <linux-scsi@...r.kernel.org>, <martin.petersen@...cle.com>,
        <avri.altman@....com>, <alim.akhtar@...sung.com>,
        <jejb@...ux.ibm.com>
CC:     <peter.wang@...iatek.com>, <chun-hung.wu@...iatek.com>,
        <alice.chao@...iatek.com>, <jonathan.hsu@...iatek.com>,
        <powen.kao@...iatek.com>, <cc.chou@...iatek.com>,
        <chaotian.jing@...iatek.com>, <jiajie.hao@...iatek.com>,
        <wsd_upstream@...iatek.com>, <ed.tsai@...iatek.com>
Subject: [PATCH 2/2] scsi: ufs: fix TM request timeout

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@...iatek.com>
---
 drivers/scsi/ufs/ufshcd.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

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;
-- 
2.18.0

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ