Re: [PATCH] watchdog: add module parameter "force_no_reboot" for iTCO

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 07/02/2018 12:30 AM, Tian, Baofeng wrote:
From: "Tian, Baofeng" <baofeng.tian@xxxxxxxxx <mailto:baofeng.tian@xxxxxxxxx>>
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 <baofeng.tian@xxxxxxxxx <mailto:baofeng.tian@xxxxxxxxx>>

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


--
To unsubscribe from this list: send the line "unsubscribe linux-watchdog" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux