Skip to content

Commit

Permalink
usb: xhci: tegra:Fix PM usage reference leak of tegra_xusb_unpowergat…
Browse files Browse the repository at this point in the history
…e_partitions

commit 8771039 upstream.

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: 41a7426 ("usb: xhci: tegra: Unlink power domain devices")
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Zhang Qilong <zhangqilong3@huawei.com>
Link: https://lore.kernel.org/r/20220319023822.145641-1-zhangqilong3@huawei.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
zhangqilong authored and gregkh committed May 9, 2022
1 parent 2be1493 commit 3d81177
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions drivers/usb/host/xhci-tegra.c
Expand Up @@ -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);
Expand Down

0 comments on commit 3d81177

Please sign in to comment.