Re: [PATCH] PCI: dwc: fix reference leak in pex_ep_event_pex_rst_deassert

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 11/2/2020 8:00 PM, Zhang Qilong wrote:
External email: Use caution opening links or attachments


pm_runtime_get_sync will increment pm usage counter even it
failed. Forgetting to pm_runtime_put_noidle will result in
reference leak in pex_ep_event_pex_rst_deassert, so we should
fix it.

Fixes: c57247f940e8e ("PCI: tegra: Add support for PCIe endpoint mode in Tegra194")
Signed-off-by: Zhang Qilong <zhangqilong3@xxxxxxxxxx>
---
  drivers/pci/controller/dwc/pcie-tegra194.c | 1 +
  1 file changed, 1 insertion(+)

diff --git a/drivers/pci/controller/dwc/pcie-tegra194.c b/drivers/pci/controller/dwc/pcie-tegra194.c
index f920e7efe118..936510b5c649 100644
--- a/drivers/pci/controller/dwc/pcie-tegra194.c
+++ b/drivers/pci/controller/dwc/pcie-tegra194.c
@@ -1662,6 +1662,7 @@ static void pex_ep_event_pex_rst_deassert(struct tegra_pcie_dw *pcie)

         ret = pm_runtime_get_sync(dev);
         if (ret < 0) {
+               pm_runtime_put_noidle(dev);
Why can't we call pm_runtime_put_sync(dev) as that is what is being called in failure cases anyway further down in this API?

                 dev_err(dev, "Failed to get runtime sync for PCIe dev: %d\n",
                         ret);
                 return;
--
2.17.1




[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux