[PATCH 1/2] Add a simple watchdog framework

Sascha Hauer s.hauer at pengutronix.de
Mon Jun 25 08:28:31 EDT 2012


On Fri, Jun 22, 2012 at 11:54:02AM +0200, Juergen Beisert wrote:
> This patch adds a simple wd command which can setup, trigger and stop a watchdog
> on the platform.
> 
> +static int do_wd(int argc, char *argv[])
> +{
> +	int rc;
> +
> +	if (argc > 1) {
> +		if (isdigit(*argv[1])) {
> +			timeout = simple_strtoul(argv[1], NULL, 0);
> +		} else {
> +			printf("numerical parameter expected\n");
> +			return 1;
> +		}
> +	}
> +
> +	rc = watchdog_set_timeout(timeout);
> +	if (rc == -EINVAL) {

Why do you check for -EINVAL only? This way all other errors will be
silently ignored.

> +		if (timeout == 0)
> +			printf("Watchdog cannot be disabled\n");
> +		else
> +			printf("Timeout value out of range\n");
> +		return rc;

Do not return negative error codes here. The shell will interpret
negative numbers as 'exit'. You have to return 1 for failure.

> +	}
> +	return 0;
> +}
> +
> +
> +#ifndef INCLUDE_WATCHDOG_H
> +# define INCLUDE_WATCHDOG_H
> +
> +extern int watchdog_set_timeout(unsigned);

extern is not needed here.

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list