RE: [PATCH v2] scsi: ufs: Unbreak the reset handler
From: Avri Altman <Avri.Altman@wdc.com>
Date: 2021-09-17 21:31:45
A command tag is passed as the second argument of the
__ufshcd_transfer_req_compl() call in ufshcd_eh_device_reset_handler()
instead of a bitmask. Fix this by passing a bitmask as argument instead of a
command tag.
Cc: Can Guo <redacted>
Fixes: a45f937110fa ("scsi: ufs: Optimize host lock on transfer requests
send/compl paths")
Signed-off-by: Bart Van Assche <bvanassche@acm.org>Reviewed-by: Avri Altman <avri.altman@wdc.com> Few nits below. Thanks, Avri
quoted hunk ↗ jump to hunk
--- drivers/scsi/ufs/ufshcd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Changes compared to v1: fixed patch description.diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index3841ab49f556..d1dc52c76847 100644--- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c@@ -6876,7 +6876,7 @@ static int ufshcd_eh_device_reset_handler(structscsi_cmnd *cmd) err = ufshcd_clear_cmd(hba, pos); if (err) break; - __ufshcd_transfer_req_compl(hba, pos, /*retry_requests=*/true); + __ufshcd_transfer_req_compl(hba, 1U << pos, + false);
1) Maybe a word in the commit log about changing retry_requests from true to false. 2) Also while at it, maybe change u32 pos to u8 tag? 3) Add an unsigned long pending_reqs, add the tag inside the loop, And call __ufshcd_transfer_req_compl(hba, pending_reqs, false) one time outside the loop. Thanks, Avri
}
}