diff mbox

PCI: rcar: fix error handling of irq_of_parse_and_map

Message ID 20141114222153.GA39494@dtor-ws (mailing list archive)
State Accepted
Delegated to: Geert Uytterhoeven
Headers show

Commit Message

Dmitry Torokhov Nov. 14, 2014, 10:21 p.m. UTC
Return value of irq_of_parse_and_map() is unsigned int, with 0
indicating failure, so testing for negative result never works.

Signed-off-by: Dmitry Torokhov <dtor@chromium.org>
---

Not tested, found by casual code inspection.

 drivers/pci/host/pcie-rcar.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Phil Edworthy Nov. 18, 2014, 10:43 a.m. UTC | #1
Hi Dmitry,

On 14 November 2014 22:22, Dmitry wrote:
> 
> Return value of irq_of_parse_and_map() is unsigned int, with 0
> indicating failure, so testing for negative result never works.
> 
> Signed-off-by: Dmitry Torokhov <dtor@chromium.org>

Acked-by: Phil Edworthy <phil.edworthy@renesas.com>

Thanks
Phil

> ---
> 
> Not tested, found by casual code inspection.
> 
>  drivers/pci/host/pcie-rcar.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/pci/host/pcie-rcar.c b/drivers/pci/host/pcie-rcar.c
> index 9b356c3..6ca976f 100644
> --- a/drivers/pci/host/pcie-rcar.c
> +++ b/drivers/pci/host/pcie-rcar.c
> @@ -764,7 +764,7 @@ static int rcar_pcie_get_resources(struct platform_device
> *pdev,
>  		goto err_map_reg;
> 
>  	i = irq_of_parse_and_map(pdev->dev.of_node, 0);
> -	if (i < 0) {
> +	if (!i) {
>  		dev_err(pcie->dev, "cannot get platform resources for msi
> interrupt\n");
>  		err = -ENOENT;
>  		goto err_map_reg;
> @@ -772,7 +772,7 @@ static int rcar_pcie_get_resources(struct platform_device
> *pdev,
>  	pcie->msi.irq1 = i;
> 
>  	i = irq_of_parse_and_map(pdev->dev.of_node, 1);
> -	if (i < 0) {
> +	if (!i) {
>  		dev_err(pcie->dev, "cannot get platform resources for msi
> interrupt\n");
>  		err = -ENOENT;
>  		goto err_map_reg;
> --
> 2.1.0.rc2.206.gedb03e5
> 
> 
> --
> Dmitry
--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Bjorn Helgaas Dec. 9, 2014, 10:38 p.m. UTC | #2
On Fri, Nov 14, 2014 at 02:21:53PM -0800, Dmitry Torokhov wrote:
> Return value of irq_of_parse_and_map() is unsigned int, with 0
> indicating failure, so testing for negative result never works.
> 
> Signed-off-by: Dmitry Torokhov <dtor@chromium.org>

Applied with Phil's ack to next-pci/host-rcar for v3.19.  This branch will
be rebased to v3.19-rc1.

> ---
> 
> Not tested, found by casual code inspection.
> 
>  drivers/pci/host/pcie-rcar.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/pci/host/pcie-rcar.c b/drivers/pci/host/pcie-rcar.c
> index 9b356c3..6ca976f 100644
> --- a/drivers/pci/host/pcie-rcar.c
> +++ b/drivers/pci/host/pcie-rcar.c
> @@ -764,7 +764,7 @@ static int rcar_pcie_get_resources(struct platform_device *pdev,
>  		goto err_map_reg;
>  
>  	i = irq_of_parse_and_map(pdev->dev.of_node, 0);
> -	if (i < 0) {
> +	if (!i) {
>  		dev_err(pcie->dev, "cannot get platform resources for msi interrupt\n");
>  		err = -ENOENT;
>  		goto err_map_reg;
> @@ -772,7 +772,7 @@ static int rcar_pcie_get_resources(struct platform_device *pdev,
>  	pcie->msi.irq1 = i;
>  
>  	i = irq_of_parse_and_map(pdev->dev.of_node, 1);
> -	if (i < 0) {
> +	if (!i) {
>  		dev_err(pcie->dev, "cannot get platform resources for msi interrupt\n");
>  		err = -ENOENT;
>  		goto err_map_reg;
> -- 
> 2.1.0.rc2.206.gedb03e5
> 
> 
> -- 
> Dmitry
--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/pci/host/pcie-rcar.c b/drivers/pci/host/pcie-rcar.c
index 9b356c3..6ca976f 100644
--- a/drivers/pci/host/pcie-rcar.c
+++ b/drivers/pci/host/pcie-rcar.c
@@ -764,7 +764,7 @@  static int rcar_pcie_get_resources(struct platform_device *pdev,
 		goto err_map_reg;
 
 	i = irq_of_parse_and_map(pdev->dev.of_node, 0);
-	if (i < 0) {
+	if (!i) {
 		dev_err(pcie->dev, "cannot get platform resources for msi interrupt\n");
 		err = -ENOENT;
 		goto err_map_reg;
@@ -772,7 +772,7 @@  static int rcar_pcie_get_resources(struct platform_device *pdev,
 	pcie->msi.irq1 = i;
 
 	i = irq_of_parse_and_map(pdev->dev.of_node, 1);
-	if (i < 0) {
+	if (!i) {
 		dev_err(pcie->dev, "cannot get platform resources for msi interrupt\n");
 		err = -ENOENT;
 		goto err_map_reg;