Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c10b90d8 authored by Li Fei's avatar Li Fei Committed by Ohad Ben-Cohen
Browse files

hwspinlock: fix __hwspin_lock_request error path



Even in failed case of pm_runtime_get_sync, the usage_count
is incremented. In order to keep the usage_count with correct
value and runtime power management to behave correctly, call
pm_runtime_put_noidle in such case.

In __hwspin_lock_request, module_put is also called before
return in pm_runtime_get_sync failed case.

Cc: stable@vger.kernel.org
Signed-off-by Liu Chuansheng <chuansheng.liu@intel.com>
Signed-off-by: default avatarLi Fei <fei.li@intel.com>
[edit commit log]
Signed-off-by: default avatarOhad Ben-Cohen <ohad@wizery.com>
parent f6161aa1
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -416,6 +416,8 @@ static int __hwspin_lock_request(struct hwspinlock *hwlock)
	ret = pm_runtime_get_sync(dev);
	if (ret < 0) {
		dev_err(dev, "%s: can't power on device\n", __func__);
		pm_runtime_put_noidle(dev);
		module_put(dev->driver->owner);
		return ret;
	}