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 03/11/2020 02:52, Vidya Sagar wrote:
> 
> 
> 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?


Simply because this is a failure case where the get_sync did not
complete. So this change is correct, however, now we have
pm_runtime_resume_and_get(), it is better/simpler just to replace the
pm_runtime_get_sync with pm_runtime_resume_and_get.

Cheers
Jon

-- 
nvpublic




[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