aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDinghao Liu <dinghao.liu@zju.edu.cn>2020-05-22 12:59:29 +0800
committerMartin K. Petersen <martin.petersen@oracle.com>2020-06-15 22:37:08 -0400
commita1e17eb03e69bb61bd1b1a14610436b7b9be12d9 (patch)
tree92451499d763b5e060c2bcb32e0be1d1effec89e
parentLinux 5.8-rc1 (diff)
downloadlinux-dev-a1e17eb03e69bb61bd1b1a14610436b7b9be12d9.tar.xz
linux-dev-a1e17eb03e69bb61bd1b1a14610436b7b9be12d9.zip
scsi: ufs-bsg: Fix runtime PM imbalance on error
When ufs_bsg_alloc_desc_buffer() returns an error code, a pairing runtime PM usage counter decrement is needed to keep the counter balanced. Link: https://lore.kernel.org/r/20200522045932.31795-1-dinghao.liu@zju.edu.cn Fixes: 74e5e468b664 (scsi: ufs-bsg: Wake the device before sending raw upiu commands) Reviewed-by: Avri Altman <avri.altman@wdc.com> Signed-off-by: Dinghao Liu <dinghao.liu@zju.edu.cn> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-rw-r--r--drivers/scsi/ufs/ufs_bsg.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/scsi/ufs/ufs_bsg.c b/drivers/scsi/ufs/ufs_bsg.c
index 53dd87628cbe..516a7f573942 100644
--- a/drivers/scsi/ufs/ufs_bsg.c
+++ b/drivers/scsi/ufs/ufs_bsg.c
@@ -106,8 +106,10 @@ static int ufs_bsg_request(struct bsg_job *job)
desc_op = bsg_request->upiu_req.qr.opcode;
ret = ufs_bsg_alloc_desc_buffer(hba, job, &desc_buff,
&desc_len, desc_op);
- if (ret)
+ if (ret) {
+ pm_runtime_put_sync(hba->dev);
goto out;
+ }
/* fall through */
case UPIU_TRANSACTION_NOP_OUT: