diff mbox series

PCI: rcar: Use common error handling code in rcar_pcie_enable_msi()

Message ID c598933b-b14f-91a1-c7a3-f4a46ec98e77@users.sourceforge.net
State Superseded
Headers show
Series PCI: rcar: Use common error handling code in rcar_pcie_enable_msi() | expand

Commit Message

SF Markus Elfring Oct. 30, 2017, 7:35 a.m. UTC
From: Markus Elfring <elfring@users.sourceforge.net>
Date: Mon, 30 Oct 2017 08:28:06 +0100

Adjust a jump target so that a specific error message is stored only once
at the end of this function implementation.
Replace two calls of the function "dev_err" by goto statements.

This issue was detected by using the Coccinelle software.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
 drivers/pci/host/pcie-rcar.c | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

Comments

Simon Horman Nov. 1, 2017, 8:18 a.m. UTC | #1
On Mon, Oct 30, 2017 at 08:35:30AM +0100, SF Markus Elfring wrote:
> From: Markus Elfring <elfring@users.sourceforge.net>
> Date: Mon, 30 Oct 2017 08:28:06 +0100
> 
> Adjust a jump target so that a specific error message is stored only once
> at the end of this function implementation.
> Replace two calls of the function "dev_err" by goto statements.
> 
> This issue was detected by using the Coccinelle software.
> 
> Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>

This is fine by me except that the change in the name of the goto label
seems spurious. If think it should be left as-is. But if you really want to
change it then as it is an error path I should suggest it describe that its
an error and what unwinding is done, f.e.  err_remove_domain.

> ---
>  drivers/pci/host/pcie-rcar.c | 15 ++++++---------
>  1 file changed, 6 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/pci/host/pcie-rcar.c b/drivers/pci/host/pcie-rcar.c
> index 12796eccb2be..38101f8bebf1 100644
> --- a/drivers/pci/host/pcie-rcar.c
> +++ b/drivers/pci/host/pcie-rcar.c
> @@ -873,18 +873,14 @@ static int rcar_pcie_enable_msi(struct rcar_pcie *pcie)
>  	err = devm_request_irq(dev, msi->irq1, rcar_pcie_msi_irq,
>  			       IRQF_SHARED | IRQF_NO_THREAD,
>  			       rcar_msi_irq_chip.name, pcie);
> -	if (err < 0) {
> -		dev_err(dev, "failed to request IRQ: %d\n", err);
> -		goto err;
> -	}
> +	if (err < 0)
> +		goto report_request_failure;
>  
>  	err = devm_request_irq(dev, msi->irq2, rcar_pcie_msi_irq,
>  			       IRQF_SHARED | IRQF_NO_THREAD,
>  			       rcar_msi_irq_chip.name, pcie);
> -	if (err < 0) {
> -		dev_err(dev, "failed to request IRQ: %d\n", err);
> -		goto err;
> -	}
> +	if (err < 0)
> +		goto report_request_failure;
>  
>  	/* setup MSI data target */
>  	msi->pages = __get_free_pages(GFP_KERNEL, 0);
> @@ -898,7 +894,8 @@ static int rcar_pcie_enable_msi(struct rcar_pcie *pcie)
>  
>  	return 0;
>  
> -err:
> +report_request_failure:
> +	dev_err(dev, "failed to request IRQ: %d\n", err);
>  	irq_domain_remove(msi->domain);
>  	return err;
>  }
> -- 
> 2.14.3
>
SF Markus Elfring Nov. 1, 2017, 8:57 a.m. UTC | #2
> This is fine by me

Thanks for another bit of change acceptance.


> except that the change in the name of the goto label seems spurious.

I am curious if the popularity of a jump label like “err” will decrease
(in the Linux source files) over time.


> But if you really want to change it then as it is an error path
> I should suggest it describe that its an error and what unwinding
> is done, f.e.  err_remove_domain.

* Do you get such a kind of information only when the prefix “err_”
  is added to this identifier?

* Do you prefer to stress the “domain removal”
  (or the shown error message) in the label?

Regards,
Markus
Simon Horman Nov. 2, 2017, 8:12 a.m. UTC | #3
On Wed, Nov 01, 2017 at 09:57:00AM +0100, SF Markus Elfring wrote:
> > This is fine by me
> 
> Thanks for another bit of change acceptance.
> 
> 
> > except that the change in the name of the goto label seems spurious.
> 
> I am curious if the popularity of a jump label like “err” will decrease
> (in the Linux source files) over time.

If your current patch bombing is successful then it will, at least in the
short term. But my comments relate to the current best practice,
not the one you seem to be trying to introduce.

> > But if you really want to change it then as it is an error path
> > I should suggest it describe that its an error and what unwinding
> > is done, f.e.  err_remove_domain.
> 
> * Do you get such a kind of information only when the prefix “err_”
>   is added to this identifier?

Yes, err indicates its an error path.

> 
> * Do you prefer to stress the “domain removal”
>   (or the shown error message) in the label?

I prefer to stress the unwind path as that is the most important
aspect of the error path.


I have no interest in a prelonged debate about the naming of labels.
As I pointed out its a spurious aspect of your change. If you wish me to
Ack your change then please either drop that change or update it - as I
already suggested. Else lets discontinue this sub-thread.
diff mbox series

Patch

diff --git a/drivers/pci/host/pcie-rcar.c b/drivers/pci/host/pcie-rcar.c
index 12796eccb2be..38101f8bebf1 100644
--- a/drivers/pci/host/pcie-rcar.c
+++ b/drivers/pci/host/pcie-rcar.c
@@ -873,18 +873,14 @@  static int rcar_pcie_enable_msi(struct rcar_pcie *pcie)
 	err = devm_request_irq(dev, msi->irq1, rcar_pcie_msi_irq,
 			       IRQF_SHARED | IRQF_NO_THREAD,
 			       rcar_msi_irq_chip.name, pcie);
-	if (err < 0) {
-		dev_err(dev, "failed to request IRQ: %d\n", err);
-		goto err;
-	}
+	if (err < 0)
+		goto report_request_failure;
 
 	err = devm_request_irq(dev, msi->irq2, rcar_pcie_msi_irq,
 			       IRQF_SHARED | IRQF_NO_THREAD,
 			       rcar_msi_irq_chip.name, pcie);
-	if (err < 0) {
-		dev_err(dev, "failed to request IRQ: %d\n", err);
-		goto err;
-	}
+	if (err < 0)
+		goto report_request_failure;
 
 	/* setup MSI data target */
 	msi->pages = __get_free_pages(GFP_KERNEL, 0);
@@ -898,7 +894,8 @@  static int rcar_pcie_enable_msi(struct rcar_pcie *pcie)
 
 	return 0;
 
-err:
+report_request_failure:
+	dev_err(dev, "failed to request IRQ: %d\n", err);
 	irq_domain_remove(msi->domain);
 	return err;
 }