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 for Android: free password hash cracker in your pocket
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210929070047.4223-1-powen.kao@mediatek.com>
Date:   Wed, 29 Sep 2021 15:00:45 +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 0/2] Fix UFS task management command timeout

On UTP_TASK_REQ_COMPL interrupt, ufshcd_tmc_handler() iterates through
busy requests in tags->rqs and complete request if corresponding
doorbell flag is reset.
However, ufshcd_issue_tm_cmd() allocates requests from tags->static_rqs 
and trigger doorbell directly without dispatching request through block 
layer, thus requests can never be found in tags->rqs and completed 
properly. Any TM command issued by ufshcd_issue_tm_cmd() inevitably 
timeout and further leads to recovery flow failure when LU Reset or 
Abort Task is issued.

In this patch, blk_mq_tagset_busy_iter() call in ufshcd_tmc_handler() 
is replaced with new interface, blk_mq_drv_tagset_busy_iter(), to 
allow completion of request allocted by driver. The new interface is 
introduced for driver to iterate through requests in static_rqs. 

Po-Wen Kao (2):
  blk-mq: new busy request iterator for driver
  scsi: ufs: fix TM request timeout

 block/blk-mq-tag.c        | 36 ++++++++++++++++++++++++++++++------
 drivers/scsi/ufs/ufshcd.c |  2 +-
 include/linux/blk-mq.h    |  4 ++++
 3 files changed, 35 insertions(+), 7 deletions(-)

-- 
2.18.0

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ