Message ID | 20220315025614.2599576-1-zhangqilong3@huawei.com |
---|---|
State | Superseded |
Headers | show |
Series | [-next] usb: xhci: tegra:Fix PM usage reference leak of tegra_xusb_unpowergate_partitions | expand |
On Tue, Mar 15, 2022 at 10:56:14AM +0800, zhangqilong wrote: > 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. > > Fixes:1a7426d25fa3 ("usb: xhci: tegra: Unlink power domain devices") I do not see this commit id in any tree I know of. Are you sure it is correct? thanks, greg k-h
> -----邮件原件----- > 发件人: Greg KH [mailto:gregkh@linuxfoundation.org] > 发送时间: 2022年3月18日 19:57 > 收件人: zhangqilong <zhangqilong3@huawei.com> > 抄送: mathias.nyman@intel.com; thierry.reding@gmail.com; > jonathanh@nvidia.com; linux-usb@vger.kernel.org; > linux-tegra@vger.kernel.org > 主题: Re: [PATCH -next] usb: xhci: tegra:Fix PM usage reference leak of > tegra_xusb_unpowergate_partitions > > On Tue, Mar 15, 2022 at 10:56:14AM +0800, zhangqilong wrote: > > 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. > > > > Fixes:1a7426d25fa3 ("usb: xhci: tegra: Unlink power domain devices") > > I do not see this commit id in any tree I know of. Are you sure it is correct? I paste the wrong commit id, It is 41a7426d25fa3 Thanks Zhang > > thanks, > > greg k-h
diff --git a/drivers/usb/host/xhci-tegra.c b/drivers/usb/host/xhci-tegra.c index c8af2cd2216d..996958a6565c 100644 --- a/drivers/usb/host/xhci-tegra.c +++ b/drivers/usb/host/xhci-tegra.c @@ -1034,13 +1034,13 @@ static int tegra_xusb_unpowergate_partitions(struct tegra_xusb *tegra) int rc; if (tegra->use_genpd) { - rc = pm_runtime_get_sync(tegra->genpd_dev_ss); + rc = pm_runtime_resume_and_get(tegra->genpd_dev_ss); if (rc < 0) { dev_err(dev, "failed to enable XUSB SS partition\n"); return rc; } - rc = pm_runtime_get_sync(tegra->genpd_dev_host); + rc = pm_runtime_resume_and_get(tegra->genpd_dev_host); if (rc < 0) { dev_err(dev, "failed to enable XUSB Host partition\n"); pm_runtime_put_sync(tegra->genpd_dev_ss);
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. Fixes:1a7426d25fa3 ("usb: xhci: tegra: Unlink power domain devices") Signed-off-by: Zhang Qilong <zhangqilong3@huawei.com> --- drivers/usb/host/xhci-tegra.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)