Subject: Re: [PATCH 4/7] can/at91: don't check platform_get_irq's return value against zero

From: Wolfgang Grandegger <[email-masked]>
Date: Wed, 16 Dec 2009 19:58:38 +0100

Uwe Kleine-König wrote:
> platform_get_irq returns -ENXIO on failure, so !irq was probably
> always true.  Better use (int)irq <= 0.  Note that a return value of
> zero is still handled as error even though this could mean irq0.
> 
> This is a followup to 305b3228f9ff4d59f49e6d34a7034d44ee8ce2f0 that
> changed the return value of platform_get_irq from 0 to -ENXIO on error.
> 
> Signed-off-by: Uwe Kleine-König <[email-masked]>
> Cc: David Vrabel <[email-masked]>
> Cc: Greg Kroah-Hartman <[email-masked]>
> Cc: Urs Thuermann <[email-masked]>
> Cc: Oliver Hartkopp <[email-masked]>
> Cc: David S. Miller <[email-masked]>
> Cc: Wolfgang Grandegger <[email-masked]>
> Cc: Kurt Van Dijck <[email-masked]>
> Cc: [email-masked]

Signed-off-by: Wolfgang Grandegger <[email-masked]>

> ---
>  drivers/net/can/at91_can.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/net/can/at91_can.c b/drivers/net/can/at91_can.c
> index cbe3fce..631d404 100644
> --- a/drivers/net/can/at91_can.c
> +++ b/drivers/net/can/at91_can.c
> @@ -1037,7 +1037,7 @@ static int __init at91_can_probe(struct platform_device *pdev)
>  
>  	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
>  	irq = platform_get_irq(pdev, 0);
> -	if (!res || !irq) {
> +	if (!res || irq <= 0) {
>  		err = -ENODEV;
>  		goto exit_put;
>  	}

Thanks,

Wolfgang.