Hi Arnd,



On 4 May 2015 at 23:19, Arnd Bergmann <arnd@arndb.de> wrote:
On Monday 04 May 2015 20:04:47 fu.wei@linaro.org wrote:
>  drivers/watchdog/Kconfig     |  10 +
>  drivers/watchdog/Makefile    |   1 +
>  drivers/watchdog/sbsa_gwdt.c | 578 +++++++++++++++++++++++++++++++++++++++++++
>  drivers/watchdog/sbsa_gwdt.h |  99 ++++++++
>

To clarify my earlier comment: I actually meant to suggest moving the contents
of sbsa_gwdt.h into sbsa_gwdt.c itself, and having only one file.

OK, np, will do
 

> +static long sbsa_gwdt_ioctl(struct watchdog_device *wdd, unsigned int cmd,
> +                               unsigned long arg)
> +{
> +       struct sbsa_gwdt *gwdt = watchdog_get_drvdata(wdd);
> +       void __user *argp = (void __user *)arg;
> +       int ret = -ENOIOCTLCMD;
> +       unsigned int __user *p = argp;
> +       unsigned int new_value;
> +
> +       /* FIXME: what else do we need here?? */
> +       switch (cmd) {
> +       case WDIOC_SETPRETIMEOUT:
> +               if (get_user(new_value, p))
> +                       return -EFAULT;
> +               ret = sbsa_gwdt_set_pretimeout(wdd, new_value);
> +               break;
> +       case WDIOC_GETPRETIMEOUT:
> +               ret = put_user(gwdt->pretimeout, (unsigned int __user
> *)arg);
> +               break;
> +       }
> +
> +       return ret;
> +}

Here, I'd like to see the two ioctl commands get handled by the ioctl
handler in drivers/watchdog/watchdog_dev.c in the same way that
WDIOC_GETTIMEOUT/WDIOC_SETTIMEOUT are. Just add one more patch to the
series to introduce a generic watchdog_set_pretimeout() function
and a 'pretimeout' field in 'struct watchdog_device'.

OK, you will see it in next version.

Great thanks Arnd !!! :-)

 

        Arnd



--
Best regards,

Fu Wei
Software Engineer
Red Hat Software (Beijing) Co.,Ltd.Shanghai Branch
Ph: +86 21 61221326(direct)
Ph: +86 186 2020 4684 (mobile)
Room 1512, Regus One Corporate Avenue,Level 15,
One Corporate Avenue,222 Hubin Road,Huangpu District,
Shanghai,China 200021