[PATCH 0/3] Handle return value of platform_get_irq

STALE3180d

7 messages, 3 authors, 2017-12-02 · open the first message on its own page

[PATCH 0/3] Handle return value of platform_get_irq

From: Arvind Yadav <hidden>
Date: 2017-11-30 15:43:54

The platform_get_irq() function returns negative if an error occurs.
zero or positive number on success. platform_get_irq() error checking
for zero is not correct.

Remove unnecessary 'err' initialization for irda driver.

Arvind Yadav (3):
  [PATCH 1/3] iio: trigger: Fix platform_get_irq's error checking
  [PATCH 2/3] staging: irda: Handle return value of platform_get_irq
  [PATCH 3/3] staging: irda: Remove unnecessary 'err' initialization.

 drivers/staging/iio/trigger/iio-trig-bfin-timer.c |  4 ++--
 drivers/staging/irda/drivers/pxaficp_ir.c         | 11 ++++++++++-
 2 files changed, 12 insertions(+), 3 deletions(-)

-- 
2.7.4

[PATCH 1/3] iio: trigger: Fix platform_get_irq's error checking

From: Arvind Yadav <hidden>
Date: 2017-11-30 15:43:57

The platform_get_irq() function returns negative if an error occurs.
zero or positive number on success. platform_get_irq() error checking
for zero is not correct.

Signed-off-by: Arvind Yadav <redacted>
---
 drivers/staging/iio/trigger/iio-trig-bfin-timer.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/staging/iio/trigger/iio-trig-bfin-timer.c b/drivers/staging/iio/trigger/iio-trig-bfin-timer.c
index d80dcf8..f389f5c 100644
--- a/drivers/staging/iio/trigger/iio-trig-bfin-timer.c
+++ b/drivers/staging/iio/trigger/iio-trig-bfin-timer.c
@@ -187,9 +187,9 @@ static int iio_bfin_tmr_trigger_probe(struct platform_device *pdev)
 		return -ENOMEM;
 
 	st->irq = platform_get_irq(pdev, 0);
-	if (!st->irq) {
+	if (st->irq < 0) {
 		dev_err(&pdev->dev, "No IRQs specified");
-		return -ENODEV;
+		return st->irq;
 	}
 
 	ret = iio_bfin_tmr_get_number(st->irq);
-- 
2.7.4

[PATCH 2/3] staging: irda: Handle return value of platform_get_irq

From: Arvind Yadav <hidden>
Date: 2017-11-30 15:44:04

platform_get_irq() can fail here and we must check its return value.

Signed-off-by: Arvind Yadav <redacted>
---
 drivers/staging/irda/drivers/pxaficp_ir.c | 10 ++++++++++
 1 file changed, 10 insertions(+)
diff --git a/drivers/staging/irda/drivers/pxaficp_ir.c b/drivers/staging/irda/drivers/pxaficp_ir.c
index 1dba16b..a97ce04 100644
--- a/drivers/staging/irda/drivers/pxaficp_ir.c
+++ b/drivers/staging/irda/drivers/pxaficp_ir.c
@@ -960,7 +960,17 @@ static int pxa_irda_probe(struct platform_device *pdev)
 	si->irda_base = ficp;
 	si->stuart_base = stuart;
 	si->uart_irq = platform_get_irq(pdev, 0);
+	if (si->uart_irq < 0) {
+		err =  si->uart_irq;
+		goto err_mem_1;
+	}
+
 	si->icp_irq = platform_get_irq(pdev, 1);
+	if (si->icp_irq < 0) {
+		err =  si->icp_irq;
+		goto err_mem_1;
+	}
+
 
 	si->sir_clk = devm_clk_get(&pdev->dev, "UARTCLK");
 	si->fir_clk = devm_clk_get(&pdev->dev, "FICPCLK");
-- 
2.7.4

[PATCH 3/3] staging: irda: Remove unnecessary 'err' initialization.

From: Arvind Yadav <hidden>
Date: 2017-11-30 15:44:33

Here, variable 'err' is already initialised. So no need to reinitialize.

Signed-off-by: Arvind Yadav <redacted>
---
 drivers/staging/irda/drivers/pxaficp_ir.c | 1 -
 1 file changed, 1 deletion(-)
diff --git a/drivers/staging/irda/drivers/pxaficp_ir.c b/drivers/staging/irda/drivers/pxaficp_ir.c
index a97ce04..6c77370 100644
--- a/drivers/staging/irda/drivers/pxaficp_ir.c
+++ b/drivers/staging/irda/drivers/pxaficp_ir.c
@@ -807,7 +807,6 @@ static int pxa_irda_start(struct net_device *dev)
 	 * Open a new IrLAP layer instance.
 	 */
 	si->irlap = irlap_open(dev, &si->qos, "pxa");
-	err = -ENOMEM;
 	if (!si->irlap)
 		goto err_irlap;
 
-- 
2.7.4

Re: [PATCH 2/3] staging: irda: Handle return value of platform_get_irq

From: Greg KH <gregkh@linuxfoundation.org>
Date: 2017-11-30 16:41:21

On Thu, Nov 30, 2017 at 09:13:35PM +0530, Arvind Yadav wrote:
platform_get_irq() can fail here and we must check its return value.

Signed-off-by: Arvind Yadav <redacted>
---
 drivers/staging/irda/drivers/pxaficp_ir.c | 10 ++++++++++
 1 file changed, 10 insertions(+)
Did you read drivers/staging/irda/TODO?

thanks,

greg k-h

Re: [PATCH 2/3] staging: irda: Handle return value of platform_get_irq

From: arvindY <hidden>
Date: 2017-11-30 16:45:28

Hi Greg,

On Thursday 30 November 2017 10:11 PM, Greg KH wrote:
On Thu, Nov 30, 2017 at 09:13:35PM +0530, Arvind Yadav wrote:
quoted
platform_get_irq() can fail here and we must check its return value.

Signed-off-by: Arvind Yadav <redacted>
---
  drivers/staging/irda/drivers/pxaficp_ir.c | 10 ++++++++++
  1 file changed, 10 insertions(+)
Did you read drivers/staging/irda/TODO?
Sorry, Now I have read it. :(
thanks,

greg k-h
Thanks,
~arvind

Re: [PATCH 1/3] iio: trigger: Fix platform_get_irq's error checking

From: Jonathan Cameron <jic23@kernel.org>
Date: 2017-12-02 12:22:47

On Thu, 30 Nov 2017 21:13:34 +0530
Arvind Yadav [off-list ref] wrote:
The platform_get_irq() function returns negative if an error occurs.
zero or positive number on success. platform_get_irq() error checking
for zero is not correct.

Signed-off-by: Arvind Yadav <redacted>
Applied to the togreg branch of iio.git.  This is probably just
a theoretical problem as obviously the blackfin trigger only runs
on blackfin boards and I assume they only return 0.

Anyhow, nothing wrong with tidying it up as might possible get
cut and paste to somewhere it does matter in future!

Jonathan
quoted hunk
---
 drivers/staging/iio/trigger/iio-trig-bfin-timer.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/staging/iio/trigger/iio-trig-bfin-timer.c b/drivers/staging/iio/trigger/iio-trig-bfin-timer.c
index d80dcf8..f389f5c 100644
--- a/drivers/staging/iio/trigger/iio-trig-bfin-timer.c
+++ b/drivers/staging/iio/trigger/iio-trig-bfin-timer.c
@@ -187,9 +187,9 @@ static int iio_bfin_tmr_trigger_probe(struct platform_device *pdev)
 		return -ENOMEM;
 
 	st->irq = platform_get_irq(pdev, 0);
-	if (!st->irq) {
+	if (st->irq < 0) {
 		dev_err(&pdev->dev, "No IRQs specified");
-		return -ENODEV;
+		return st->irq;
 	}
 
 	ret = iio_bfin_tmr_get_number(st->irq);
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help