]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/commitdiff
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)
committerKleber Sacilotto de Souza <kleber.souza@canonical.com>
Wed, 20 Jan 2021 13:25:55 +0000 (14:25 +0100)
BugLink: https://bugs.launchpad.net/bugs/1910822
[ Upstream commit bce776f10069c806290eaac712ba73432ae8ecd7 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Kelsey Skunberg <kelsey.skunberg@canonical.com>
drivers/hwmon/ina3221.c

index 8a51dcf055eab73222c828a64ba7c4a5b743aefb..026f70d7c5a43b8f822e4c69b85c26990932da41 100644 (file)
@@ -403,7 +403,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;