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 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to