Hi, Roeck

Yes, this patch is for add a parameter to TCO to prevent reboot happen if you 
don't want to reboot system 
and want to stay here to check some HW status, logs, etc for debug purpose.

Under some android related stability test, developer want to stay at the crash 
and use debug tools(LTB)
to check more information, this is the purpose of this patch.

Thanks
Tim

-----Original Message-----
From: Guenter Roeck [mailto:[email protected]] On Behalf Of Guenter Roeck
Sent: Monday, July 2, 2018 9:21 PM
To: Tian, Baofeng <[email protected]>; [email protected]; 
[email protected]; [email protected]
Subject: Re: [PATCH] watchdog: add module parameter "force_no_reboot" for iTCO

On 07/02/2018 12:30 AM, Tian, Baofeng wrote:
> From: "Tian, Baofeng" <[email protected] 
> <mailto:[email protected]>>
> Subject: [PATCH] watchdog: add module parameter "force_no_reboot" for 
> iTCO
> 
> Setting "force_no_reboot" parameter to true (y/Y/1) will have the 
> effect to prevent to reset the NO_REBOOT flag thus preventing the iTCO 
> to reboot the platform, if not set or set to false, then system will 
> reboot after about 30s.
> 
> Signed-off-by: Tian, Baofeng <[email protected] 
> <mailto:[email protected]>>

Your e-mail address is messed up.

> ---
>   drivers/watchdog/iTCO_wdt.c | 11 ++++++++++-
>   1 file changed, 10 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/watchdog/iTCO_wdt.c b/drivers/watchdog/iTCO_wdt.c 
> index 347f038..255318b 100644
> --- a/drivers/watchdog/iTCO_wdt.c
> +++ b/drivers/watchdog/iTCO_wdt.c
> @@ -131,6 +131,11 @@ module_param(turn_SMI_watchdog_clear_off, int, 
> 0);
>   MODULE_PARM_DESC(turn_SMI_watchdog_clear_off,
>        "Turn off SMI clearing watchdog (depends on 
> TCO-version)(default=1)");
> 
> +static bool force_no_reboot;
> +module_param(force_no_reboot, bool, 0); 
> +MODULE_PARM_DESC(force_no_reboot,
> +           "Prevents the watchdog rebooting the platform 
> +(default=0)");
> +
>   /*
>    * Some TCO specific functions
>    */
> @@ -243,6 +248,10 @@ static int iTCO_wdt_start(struct watchdog_device 
> *wd_dev)
>        struct iTCO_wdt_private *p = watchdog_get_drvdata(wd_dev);
>        unsigned int val;
> 
> +     /* force_no_reboot will prevent to unset NO_REBOOT bit */
> +     if (force_no_reboot)
> +           return -EIO;
> +
It seems to me that this flag prevents the watchdog from being started, and on 
top it would return an unreasonable error (-EIO).

I don't see the point of this patch, sorry.

Guenter

>        spin_lock(&p->io_lock);
> 
>        iTCO_vendor_pre_start(p->smi_res, wd_dev->timeout); @@ -250,7 
> +259,7 @@ static int iTCO_wdt_start(struct watchdog_device *wd_dev)
>        /* disable chipset's NO_REBOOT bit */
>        if (p->update_no_reboot_bit(p->no_reboot_priv, false)) {
>              spin_unlock(&p->io_lock);
> -           pr_err("failed to reset NO_REBOOT flag, reboot disabled by 
> hardware/BIOS\n");
> +           pr_err("failed to reset NO_REBOOT flag, reboot disabled by 
> +hardware/BIOS/rc_cmd\n");
>              return -EIO;
>        }
> 
> --
> 2.7.4
> 

Reply via email to