Subject: Re: [PATCH] pcnet: fix sparse triviality

From: Jeff Garzik <[email-masked]>
Date: Mon, 29 Oct 2007 06:04:53 -0400

Auke Kok wrote:
> Since data can never exceed u32, it can't even be larger than LONG_MAX/HZ.
> 
> Signed-off-by: Auke Kok <[email-masked]>
> Cc: [email-masked]
> ---
> 
>  drivers/net/pcnet32.c |    5 ++---
>  1 files changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/net/pcnet32.c b/drivers/net/pcnet32.c
> index ff92aca..3573e77 100644
> --- a/drivers/net/pcnet32.c
> +++ b/drivers/net/pcnet32.c
> @@ -1101,9 +1101,8 @@ static int pcnet32_phys_id(struct net_device *dev, u32 data)
>  	mod_timer(&lp->blink_timer, jiffies);
>  	set_current_state(TASK_INTERRUPTIBLE);
>  
> -	/* AV: the limit here makes no sense whatsoever */
> -	if ((!data) || (data > (u32) (MAX_SCHEDULE_TIMEOUT / HZ)))
> -		data = (u32) (MAX_SCHEDULE_TIMEOUT / HZ);
> +	if (!data)
> +		data = INT_MAX;
>  
>  	msleep_interruptible(data * 1000);
>  	del_timer_sync(&lp->blink_timer);

Two comments:

1) I would prefer to pick a sane limit, like "1 day".  The unit of 
'data' is seconds, so IMO we should not allow stupid timeouts, much less 
INT_MAX ones :)  But hey, then again, maybe we should permit root to 
hang themselves with own rope...

2) [tangent] someone really should add the obvious ssleep_interruptible()