hwmon: (ina3221) Fix PM usage counter unbalance in ina3221_write_enable
authorZhang Qilong <zhangqilong3@huawei.com>
Wed, 2 Dec 2020 14:53:20 +0000 (22:53 +0800)
committerGuenter Roeck <linux@roeck-us.net>
Thu, 3 Dec 2020 01:41:39 +0000 (17:41 -0800)
pm_runtime_get_sync will increment pm usage counter
even it failed. Forgetting to putting operation will
result in reference leak here. We fix it by replacing
it with pm_runtime_resume_and_get to keep usage counter
balanced. It depends on the mainline commit[PM: runtime:
Add pm_runtime_resume_and_get to deal with usagecounter].

Fixes: 323aeb0eb5d9a ("hwmon: (ina3221) Add PM runtime support")
Signed-off-by: Zhang Qilong <zhangqilong3@huawei.com>
Link: https://lore.kernel.org/r/20201202145320.1135614-1-zhangqilong3@huawei.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
drivers/hwmon/ina3221.c

index 41fb17e0d6416bbcd8fb2561cbdf7fc9f2c84490..ad11cbddc3a7b145ba6673bbbb6a42c0a76a0afa 100644 (file)
@@ -489,7 +489,7 @@ static int ina3221_write_enable(struct device *dev, int channel, bool enable)
 
        /* For enabling routine, increase refcount and resume() at first */
        if (enable) {
-               ret = pm_runtime_get_sync(ina->pm_dev);
+               ret = pm_runtime_resume_and_get(ina->pm_dev);
                if (ret < 0) {
                        dev_err(dev, "Failed to get PM runtime\n");
                        return ret;