Commit 06b8b888 authored by Qinglang Miao's avatar Qinglang Miao Committed by Liao Chen
Browse files

i2c: sprd: fix reference leak when pm_runtime_get_sync fails

mainline inclusion
from mainline-v5.13-rc1
commit 3a4f3264
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/I94JH2
CVE: CVE-2020-36780

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=3a4f326463117cee3adcb72999ca34a9aaafda93



--------------------------------

[ Upstream commit 3a4f3264 ]

The PM reference count is not expected to be incremented on
return in sprd_i2c_master_xfer() and sprd_i2c_remove().

However, pm_runtime_get_sync will increment the PM reference
count even failed. Forgetting to putting operation will result
in a reference leak here.

Replace it with pm_runtime_resume_and_get to keep usage
counter balanced.

Fixes: 8b9ec071 ("i2c: Add Spreadtrum I2C controller driver")
Reported-by: default avatarHulk Robot <hulkci@huawei.com>
Signed-off-by: default avatarQinglang Miao <miaoqinglang@huawei.com>
Signed-off-by: default avatarWolfram Sang <wsa@kernel.org>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>

conflict:
	drivers/i2c/busses/i2c-sprd.c

Signed-off-by: default avatarLiao Chen <liaochen4@huawei.com>
parent 415aa2f1
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment