diff mbox series

PCI: tegra: fix runtime pm imbalance on error

Message ID 20200520085231.32552-1-dinghao.liu@zju.edu.cn
State New
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>
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;
 }