[PATCH] watchdog: imx: error out on negative timeouts

Uwe Kleine-König u.kleine-koenig at pengutronix.de
Mon Feb 2 02:49:57 PST 2015


Hello,

On Tue, Jan 27, 2015 at 02:41:01PM +0100, Uwe Kleine-König wrote:
> I'm not sure where a negative timeout could come from but making the
> code more robust for no additional runtime cost is good nevertheless.
> 
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig at pengutronix.de>
> ---
>  drivers/watchdog/imxwd.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/watchdog/imxwd.c b/drivers/watchdog/imxwd.c
> index 31c3d0d85353..66e9f6848f74 100644
> --- a/drivers/watchdog/imxwd.c
> +++ b/drivers/watchdog/imxwd.c
> @@ -87,7 +87,7 @@ static int imx21_watchdog_set_timeout(struct imx_wd *priv, int timeout)
>  
>  	dev_dbg(priv->dev, "%s: %d\n", __func__, timeout);
>  
> -	if (!timeout || timeout > 128)
> +	if (timeout <= 0 || timeout > 128)
>  		return -EINVAL;
This patch is broken because reset_cpu (in the same source file) calls
set_timeout with timeout=-1 to reset the cpu immediatly. The wd command
only parses non-negative values, so from there nothing strange should be
expected.

Returning -EINVAL on timeout=0 (which means "disable watchdog") is OK
because the imx21 watchdog cannot be stopped.

So in short: please drop this patch from next.

Thanks
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |



More information about the barebox mailing list