diff mbox series

PCI: tegra: fix runtime pm imbalance on error

Message ID 20200520085231.32552-1-dinghao.liu@zju.edu.cn (mailing list archive)
State Superseded, archived
Delegated to: Lorenzo Pieralisi
Headers show
Series PCI: tegra: fix runtime pm imbalance on error | expand

Commit Message

Dinghao Liu May 20, 2020, 8:52 a.m. UTC
pm_runtime_get_sync() increments the runtime PM usage counter even
it returns an error code. Thus a pairing decrement is needed on
the error handling path to keep the counter balanced.

Signed-off-by: Dinghao Liu <dinghao.liu@zju.edu.cn>
---
 drivers/pci/controller/dwc/pcie-tegra194.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Thierry Reding May 20, 2020, 9:59 a.m. UTC | #1
On Wed, May 20, 2020 at 04:52:23PM +0800, Dinghao Liu wrote:
> pm_runtime_get_sync() increments the runtime PM usage counter even
> it returns an error code. Thus a pairing decrement is needed on

s/even it/even when it/

Might also be a good idea to use a different subject prefix because I
was almost not going to look at the other patch, taking this to be a
replacement for it.

Although, looking at the log we have used this same prefix for both
drivers in the past...

> the error handling path to keep the counter balanced.
> 
> Signed-off-by: Dinghao Liu <dinghao.liu@zju.edu.cn>
> ---
>  drivers/pci/controller/dwc/pcie-tegra194.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/pci/controller/dwc/pcie-tegra194.c b/drivers/pci/controller/dwc/pcie-tegra194.c
> index ae30a2fd3716..a69f9e49dcb5 100644
> --- a/drivers/pci/controller/dwc/pcie-tegra194.c
> +++ b/drivers/pci/controller/dwc/pcie-tegra194.c
> @@ -1651,8 +1651,8 @@ static int tegra_pcie_config_rp(struct tegra_pcie_dw *pcie)
>  fail_host_init:
>  	tegra_pcie_deinit_controller(pcie);
>  fail_pinctrl:
> -	pm_runtime_put_sync(dev);
>  fail_pm_get_sync:

Either of those two labels is now no longer needed. Of course it'll now
be odd to jump to fail_pm_get_sync on pinctrl_pm_select_default_state()
failure, but that's one of the reasons why label should have names
describing what they do rather than describe the failure location. I
guess we can live with that for now. I'll make a note to send a cleanup
patch for that later on.

With the fixup in the commit message and either of the labels removed:

Acked-by: Thierry Reding <treding@nvidia.com>
Bjorn Helgaas May 20, 2020, 4:37 p.m. UTC | #2
On Wed, May 20, 2020 at 11:59:08AM +0200, Thierry Reding wrote:
> On Wed, May 20, 2020 at 04:52:23PM +0800, Dinghao Liu wrote:
> > pm_runtime_get_sync() increments the runtime PM usage counter even
> > it returns an error code. Thus a pairing decrement is needed on
> 
> s/even it/even when it/
> 
> Might also be a good idea to use a different subject prefix because I
> was almost not going to look at the other patch, taking this to be a
> replacement for it.

Amen.  This would be a good change to start using "PCI: tegra194" or
something for pcie-tegra194.c.  Or will there be tegra195, tegra 196,
etc added to this driver?

Also, please capitalize the first word and "PM" in the subjects:

  PCI: tegra194: Fix runtime PM imbalance on error

Bjorn
Vidya Sagar May 20, 2020, 6:09 p.m. UTC | #3
Thanks for pushing a patch to fix it. I've been under the wrong 
assumption that a failing pm_runtime_get_sync() wouldn't increment the 
usage counter.
With Thierry's and Bjorn's comments addressed

Acked-by: Vidya Sagar <vidyas@nvidia.com>

On 20-May-20 10:07 PM, Bjorn Helgaas wrote:
> External email: Use caution opening links or attachments
> 
> 
> On Wed, May 20, 2020 at 11:59:08AM +0200, Thierry Reding wrote:
>> On Wed, May 20, 2020 at 04:52:23PM +0800, Dinghao Liu wrote:
>>> pm_runtime_get_sync() increments the runtime PM usage counter even
>>> it returns an error code. Thus a pairing decrement is needed on
>>
>> s/even it/even when it/
>>
>> Might also be a good idea to use a different subject prefix because I
>> was almost not going to look at the other patch, taking this to be a
>> replacement for it.
> 
> Amen.  This would be a good change to start using "PCI: tegra194" or
> something for pcie-tegra194.c.  Or will there be tegra195, tegra 196,
> etc added to this driver?
> 
> Also, please capitalize the first word and "PM" in the subjects:
> 
>    PCI: tegra194: Fix runtime PM imbalance on error
> 
> Bjorn
>
Dinghao Liu May 21, 2020, 3 a.m. UTC | #4
Thank you for your advice. I think tegra194 is a good choice and 
I will use it in the next edition of patch.

&quot;Bjorn Helgaas&quot; &lt;helgaas@kernel.org&gt;写道:
> On Wed, May 20, 2020 at 11:59:08AM +0200, Thierry Reding wrote:
> > On Wed, May 20, 2020 at 04:52:23PM +0800, Dinghao Liu wrote:
> > > pm_runtime_get_sync() increments the runtime PM usage counter even
> > > it returns an error code. Thus a pairing decrement is needed on
> > 
> > s/even it/even when it/
> > 
> > Might also be a good idea to use a different subject prefix because I
> > was almost not going to look at the other patch, taking this to be a
> > replacement for it.
> 
> Amen.  This would be a good change to start using "PCI: tegra194" or
> something for pcie-tegra194.c.  Or will there be tegra195, tegra 196,
> etc added to this driver?
> 
> Also, please capitalize the first word and "PM" in the subjects:
> 
>   PCI: tegra194: Fix runtime PM imbalance on error
> 
> Bjorn
Dinghao Liu May 21, 2020, 3:06 a.m. UTC | #5
Thank you for your advice. I will fix these problems in the next edition of patch.

&quot;Thierry Reding&quot; &lt;thierry.reding@gmail.com&gt;写道:
> On Wed, May 20, 2020 at 04:52:23PM +0800, Dinghao Liu wrote:
> > pm_runtime_get_sync() increments the runtime PM usage counter even
> > it returns an error code. Thus a pairing decrement is needed on
> 
> s/even it/even when it/
> 
> Might also be a good idea to use a different subject prefix because I
> was almost not going to look at the other patch, taking this to be a
> replacement for it.
> 
> Although, looking at the log we have used this same prefix for both
> drivers in the past...
> 
> > the error handling path to keep the counter balanced.
> > 
> > Signed-off-by: Dinghao Liu <dinghao.liu@zju.edu.cn>
> > ---
> >  drivers/pci/controller/dwc/pcie-tegra194.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/drivers/pci/controller/dwc/pcie-tegra194.c b/drivers/pci/controller/dwc/pcie-tegra194.c
> > index ae30a2fd3716..a69f9e49dcb5 100644
> > --- a/drivers/pci/controller/dwc/pcie-tegra194.c
> > +++ b/drivers/pci/controller/dwc/pcie-tegra194.c
> > @@ -1651,8 +1651,8 @@ static int tegra_pcie_config_rp(struct tegra_pcie_dw *pcie)
> >  fail_host_init:
> >  	tegra_pcie_deinit_controller(pcie);
> >  fail_pinctrl:
> > -	pm_runtime_put_sync(dev);
> >  fail_pm_get_sync:
> 
> Either of those two labels is now no longer needed. Of course it'll now
> be odd to jump to fail_pm_get_sync on pinctrl_pm_select_default_state()
> failure, but that's one of the reasons why label should have names
> describing what they do rather than describe the failure location. I
> guess we can live with that for now. I'll make a note to send a cleanup
> patch for that later on.
> 
> With the fixup in the commit message and either of the labels removed:
> 
> Acked-by: Thierry Reding <treding@nvidia.com>
Lorenzo Pieralisi May 29, 2020, 10:23 a.m. UTC | #6
On Wed, May 20, 2020 at 11:39:08PM +0530, Vidya Sagar wrote:
> Thanks for pushing a patch to fix it. I've been under the wrong assumption
> that a failing pm_runtime_get_sync() wouldn't increment the usage counter.
> With Thierry's and Bjorn's comments addressed
> 
> Acked-by: Vidya Sagar <vidyas@nvidia.com>

Thierry, Vidya,

are your ACKs applying also to:

https://patchwork.kernel.org/patch/11562109/

Dinghao did not carry them over and I could not understand from this
thread if your ACKs apply to both tegra and tegra194.

Thanks,
Lorenzo

> On 20-May-20 10:07 PM, Bjorn Helgaas wrote:
> > External email: Use caution opening links or attachments
> > 
> > 
> > On Wed, May 20, 2020 at 11:59:08AM +0200, Thierry Reding wrote:
> > > On Wed, May 20, 2020 at 04:52:23PM +0800, Dinghao Liu wrote:
> > > > pm_runtime_get_sync() increments the runtime PM usage counter even
> > > > it returns an error code. Thus a pairing decrement is needed on
> > > 
> > > s/even it/even when it/
> > > 
> > > Might also be a good idea to use a different subject prefix because I
> > > was almost not going to look at the other patch, taking this to be a
> > > replacement for it.
> > 
> > Amen.  This would be a good change to start using "PCI: tegra194" or
> > something for pcie-tegra194.c.  Or will there be tegra195, tegra 196,
> > etc added to this driver?
> > 
> > Also, please capitalize the first word and "PM" in the subjects:
> > 
> >    PCI: tegra194: Fix runtime PM imbalance on error
> > 
> > Bjorn
> >
Vidya Sagar May 29, 2020, 10:58 a.m. UTC | #7
On 29-May-20 3:53 PM, Lorenzo Pieralisi wrote:
> External email: Use caution opening links or attachments
> 
> 
> On Wed, May 20, 2020 at 11:39:08PM +0530, Vidya Sagar wrote:
>> Thanks for pushing a patch to fix it. I've been under the wrong assumption
>> that a failing pm_runtime_get_sync() wouldn't increment the usage counter.
>> With Thierry's and Bjorn's comments addressed
>>
>> Acked-by: Vidya Sagar <vidyas@nvidia.com>
> 
> Thierry, Vidya,
> 
> are your ACKs applying also to:
> 
> https://patchwork.kernel.org/patch/11562109/
I just took a look at this change and it looks good to me.
So, I'm fine with extending my 'Acked-by' to this patch as well.

Thanks,
Vidya Sagar
> 
> Dinghao did not carry them over and I could not understand from this
> thread if your ACKs apply to both tegra and tegra194.
> 
> Thanks,
> Lorenzo
> 
>> On 20-May-20 10:07 PM, Bjorn Helgaas wrote:
>>> External email: Use caution opening links or attachments
>>>
>>>
>>> On Wed, May 20, 2020 at 11:59:08AM +0200, Thierry Reding wrote:
>>>> On Wed, May 20, 2020 at 04:52:23PM +0800, Dinghao Liu wrote:
>>>>> pm_runtime_get_sync() increments the runtime PM usage counter even
>>>>> it returns an error code. Thus a pairing decrement is needed on
>>>>
>>>> s/even it/even when it/
>>>>
>>>> Might also be a good idea to use a different subject prefix because I
>>>> was almost not going to look at the other patch, taking this to be a
>>>> replacement for it.
>>>
>>> Amen.  This would be a good change to start using "PCI: tegra194" or
>>> something for pcie-tegra194.c.  Or will there be tegra195, tegra 196,
>>> etc added to this driver?
>>>
>>> Also, please capitalize the first word and "PM" in the subjects:
>>>
>>>     PCI: tegra194: Fix runtime PM imbalance on error
>>>
>>> Bjorn
>>>
diff mbox series

Patch

diff --git a/drivers/pci/controller/dwc/pcie-tegra194.c b/drivers/pci/controller/dwc/pcie-tegra194.c
index ae30a2fd3716..a69f9e49dcb5 100644
--- a/drivers/pci/controller/dwc/pcie-tegra194.c
+++ b/drivers/pci/controller/dwc/pcie-tegra194.c
@@ -1651,8 +1651,8 @@  static int tegra_pcie_config_rp(struct tegra_pcie_dw *pcie)
 fail_host_init:
 	tegra_pcie_deinit_controller(pcie);
 fail_pinctrl:
-	pm_runtime_put_sync(dev);
 fail_pm_get_sync:
+	pm_runtime_put_sync(dev);
 	pm_runtime_disable(dev);
 	return ret;
 }