diff mbox

gpio-tz1090: fix error handling of irq_of_parse_and_map

Message ID 20141114213256.GA24709@dtor-ws
State Accepted
Headers show

Commit Message

Dmitry Torokhov Nov. 14, 2014, 9:32 p.m. UTC
irq_of_parse_and_map() returns 0 on error, so testing for negative
result never works.

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

Not tested, found by casual inspection of the code.

 drivers/gpio/gpio-tz1090.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

James Hogan Nov. 14, 2014, 11:53 p.m. UTC | #1
On Fri, Nov 14, 2014 at 01:32:56PM -0800, Dmitry Torokhov wrote:
> irq_of_parse_and_map() returns 0 on error, so testing for negative
> result never works.
> 
> Signed-off-by: Dmitry Torokhov <dtor@chromium.org>

Good catch, thanks!

Acked-by: James Hogan <james.hogan@imgtec.com>

A quick coccinelle script shows up numerous other cases of this error
around the kernel tree too...

Cheers
James

> ---
> 
> Not tested, found by casual inspection of the code.
> 
>  drivers/gpio/gpio-tz1090.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpio/gpio-tz1090.c b/drivers/gpio/gpio-tz1090.c
> index 9e90177..e3024bb 100644
> --- a/drivers/gpio/gpio-tz1090.c
> +++ b/drivers/gpio/gpio-tz1090.c
> @@ -446,7 +446,7 @@ static int tz1090_gpio_bank_probe(struct tz1090_gpio_bank_info *info)
>  	bank->irq = irq_of_parse_and_map(np, 0);
>  
>  	/* The interrupt is optional (it may be used by another core on chip) */
> -	if (bank->irq < 0) {
> +	if (!bank->irq) {
>  		dev_info(dev, "IRQ not provided for bank %u, IRQs disabled\n",
>  			 info->index);
>  		return 0;
> -- 
> 2.1.0.rc2.206.gedb03e5
> 
> 
> -- 
> Dmitry
Dmitry Torokhov Nov. 15, 2014, 12:44 a.m. UTC | #2
On Friday, November 14, 2014 11:53:07 PM James Hogan wrote:
> On Fri, Nov 14, 2014 at 01:32:56PM -0800, Dmitry Torokhov wrote:
> > irq_of_parse_and_map() returns 0 on error, so testing for negative
> > result never works.
> > 
> > Signed-off-by: Dmitry Torokhov <dtor@chromium.org>
> 
> Good catch, thanks!
> 
> Acked-by: James Hogan <james.hogan@imgtec.com>
> 
> A quick coccinelle script shows up numerous other cases of this error
> around the kernel tree too...

Yeah, I sent out a few patches today.

Thanks,
Dmitry
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Linus Walleij Nov. 27, 2014, 1:35 p.m. UTC | #3
On Fri, Nov 14, 2014 at 10:32 PM, Dmitry Torokhov <dtor@chromium.org> wrote:

> irq_of_parse_and_map() returns 0 on error, so testing for negative
> result never works.
>
> Signed-off-by: Dmitry Torokhov <dtor@chromium.org>

Patch applied with James' ACK.

Yours,
Linus Walleij
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" 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/gpio/gpio-tz1090.c b/drivers/gpio/gpio-tz1090.c
index 9e90177..e3024bb 100644
--- a/drivers/gpio/gpio-tz1090.c
+++ b/drivers/gpio/gpio-tz1090.c
@@ -446,7 +446,7 @@  static int tz1090_gpio_bank_probe(struct tz1090_gpio_bank_info *info)
 	bank->irq = irq_of_parse_and_map(np, 0);
 
 	/* The interrupt is optional (it may be used by another core on chip) */
-	if (bank->irq < 0) {
+	if (!bank->irq) {
 		dev_info(dev, "IRQ not provided for bank %u, IRQs disabled\n",
 			 info->index);
 		return 0;