ALSA: ac97: fix PM reference leak in ac97_bus_remove()
authorYufen Yu <yuyufen@huawei.com>
Mon, 24 May 2021 09:38:11 +0000 (05:38 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 20 Jul 2021 14:05:40 +0000 (16:05 +0200)
[ Upstream commit a38e93302ee25b2ca6f4ee76c6c974cf3637985e ]

pm_runtime_get_sync will increment pm usage counter even it failed.
Forgetting to putting operation will result in reference leak here.
Fix it by replacing it with pm_runtime_resume_and_get to keep usage
counter balanced.

Reported-by: Hulk Robot <hulkci@huawei.com>
Signed-off-by: Yufen Yu <yuyufen@huawei.com>
Link: https://lore.kernel.org/r/20210524093811.612302-1-yuyufen@huawei.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
sound/ac97/bus.c

index 7985dd8..99e1728 100644 (file)
@@ -520,7 +520,7 @@ static int ac97_bus_remove(struct device *dev)
        struct ac97_codec_driver *adrv = to_ac97_driver(dev->driver);
        int ret;
 
-       ret = pm_runtime_get_sync(dev);
+       ret = pm_runtime_resume_and_get(dev);
        if (ret < 0)
                return ret;