BACKPORT: scsi: ufs: unify scsi_block_requests usage

Currently UFS driver has ufshcd_scsi_block_requests() with reference
counter mechanism to avoid possible racing of blocking and unblocking
requests flow. Unify all users in UFS driver to use the same function.

Bug: 149040610
Change-Id: Id303f3cfcd5e9a10ec2529699adbb25ee80d4863
(cherry picked from commit 03e1d28edda119185ac24391ca46468ec32fe050)
[ Resolved minor conflict in drivers/scsi/ufshcd.c ]
Link: https://lore.kernel.org/r/1577192466-20762-2-git-send-email-stanley.chu@mediatek.com
Reviewed-by: Can Guo <cang@codeaurora.org>
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Reviewed-by: Alim Akhtar <alim.akhtar@samsung.com>
Signed-off-by: Stanley Chu <stanley.chu@mediatek.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
Stanley Chu 2019-12-24 21:01:05 +08:00 • committed by Greg Kroah-Hartman
commit 6dc86ee280

View file

@ -5316,7 +5316,7 @@ static void ufshcd_exception_event_handler(struct work_struct *work)
hba = container_of(work, struct ufs_hba, eeh_work);
pm_runtime_get_sync(hba->dev);
scsi_block_requests(hba->host);
ufshcd_scsi_block_requests(hba);
err = ufshcd_get_ee_status(hba, &status);
if (err) {
dev_err(hba->dev, "%s: failed to get exception status %d\n",
@ -5330,7 +5330,7 @@ static void ufshcd_exception_event_handler(struct work_struct *work)
ufshcd_bkops_exception_event_handler(hba);
out:
scsi_unblock_requests(hba->host);
ufshcd_scsi_unblock_requests(hba);
/*
* pm_runtime_get_noresume is called while scheduling
* eeh_work to avoid suspend racing with exception work.