: convert ipmi_watchdog to also use module option nowayout as it's done in other watchdog drivers
Subsystems (2)
PATCH 1/1 : convert ipmi_watchdog to also use module option nowayout as it's done in other watchdog drivers
Convert ipmi_watchdog to also use module option ,,nowayout'' as it's done in other watchdog drivers.
Signed-off-by Arkadiusz Miskiewicz <[email protected]>
drivers/char/ipmi/ipmi_watchdog.c 2004-07-28 11:33:25.537578656 +0200 renamed from drivers/char/ipmi/ipmi_watchdog.c.org 2004-07-28 11:29:47.300755696 +0200 +12 -4
@@ -129,6 +129,12 @@ #define WDIOC_GET_PRETIMEOUT _IOW(WATCHDOG_IOCTL_BASE, 22, int) #endif +#ifdef CONFIG_WATCHDOG_NOWAYOUT +static int nowayout = 1; +#else +static int nowayout = 0; +#endif + static ipmi_user_t watchdog_user = NULL; /* Default the timeout to 10 seconds. */
@@ -175,6 +181,8 @@ module_param(start_now, int, 0); MODULE_PARM_DESC(start_now, "Set to 1 to start the watchdog as" "soon as the driver is loaded."); +module_param(nowayout, int, 0); +MODULE_PARM_DESC(nowayout, "Watchdog cannot be stopped once started (default=CONFIG_WATCHDOG_NOWAYOUT)"); /* Default state of the timer. */ static unsigned char ipmi_watchdog_state = WDOG_TIMEOUT_NONE;
@@ -704,10 +712,10 @@ { if (iminor(ino)==WATCHDOG_MINOR) { -#ifndef CONFIG_WATCHDOG_NOWAYOUT - ipmi_watchdog_state = WDOG_TIMEOUT_NONE; - ipmi_set_timeout(IPMI_SET_TIMEOUT_NO_HB); -#endif + if (!nowayout) { + ipmi_watchdog_state = WDOG_TIMEOUT_NONE; + ipmi_set_timeout(IPMI_SET_TIMEOUT_NO_HB); + } ipmi_wdog_open = 0; }
Signature · 2 lines
Arkadiusz Miśkiewicz CS at FoE, Wroclaw University of Technology arekm.pld-linux.org, 1024/3DB19BBD, JID: arekm.jabber.org, PLD/Linux
Quoted 5 lines
Convert
ipmi_watchdogto also use module option ,,nowayout'' as it's done in other watchdog drivers.
The patch is good (same style as other watchdogs), but needs to have some documentation updated. I've tacked that on.
Signed-off-by Arkadiusz Miskiewicz <[email protected]>
Signed-off-by Corey Minyard <[email protected]>
Documentation/IPMI.txt +6 -0
@@ -442,6 +442,7 @@ modprobe ipmi_watchdog timeout=<t> pretimeout=<t> action=<action type> preaction=<preaction type> preop=<preop type> start_now=x + nowayout=x The timeout is the number of seconds to the action, and the pretimeout is the amount of seconds before the reset that the pre-timeout panic will
@@ -472,6 +473,10 @@ If start_now is set to 1, the watchdog timer will start running as soon as the driver is loaded. +If nowayout is set to 1, the watchdog timer will not stop when the +watchdog device is closed. The default value of nowayout is true +if the CONFIG_WATCHDOG_NOWAYOUT option is enabled, or false if not. + When compiled into the kernel, the kernel command line is available for configuring the watchdog:
@@ -480,6 +485,7 @@ ipmi_watchdog.preaction=<preaction type> ipmi_watchdog.preop=<preop type> ipmi_watchdog.start_now=x + ipmi_watchdog.nowayout=x The options are the same as the module parameter options.
drivers/char/ipmi/ipmi_watchdog.c +12 -4
@@ -129,6 +129,12 @@#define WDIOC_GET_PRETIMEOUT _IOW(WATCHDOG_IOCTL_BASE, 22, int)#endif +#ifdef CONFIG_WATCHDOG_NOWAYOUT +static int nowayout =1 ; +#else +static int nowayout =0 ; +#endif +static ipmi_user_t watchdog_user =NULL ;/* Default the timeout to 10 seconds. */
@@ -175,6 +181,8 @@module_param (start_now, int,0 );MODULE_PARM_DESC (start_now,"Set to 1 to start the watchdog as" "soon as the driver is loaded." ); +module_param (nowayout, int,0 ); +MODULE_PARM_DESC (nowayout,"Watchdog cannot be stopped once started (default=CONFIG_WATCHDOG_NOWAYOUT)" );/* Default state of the timer. */ static unsigned char ipmi_watchdog_state =WDOG_TIMEOUT_NONE ;
@@ -707,10 +715,10 @@ {if (iminor (ino)==WATCHDOG_MINOR ) { -#ifndef CONFIG_WATCHDOG_NOWAYOUT - ipmi_watchdog_state =WDOG_TIMEOUT_NONE ; -ipmi_set_timeout (IPMI_SET_TIMEOUT_NO_HB ); -#endif +if (!nowayout) { + ipmi_watchdog_state =WDOG_TIMEOUT_NONE ; +ipmi_set_timeout (IPMI_SET_TIMEOUT_NO_HB ); + } ipmi_wdog_open =0 ; }