aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMandeep Singh Baines <[email protected]>2011-05-22 22:10:21 -0700
committerIngo Molnar <[email protected]>2011-05-23 11:58:58 +0200
commite04ab2bc41b35c0cb6cdb07c8443f91aa738cf78 (patch)
tree511efcd50f74c0a3cf28cf5c68eaa5e70b45fbc7
parent824c6b7f6294101f30e141117def224a56c203e6 (diff)
watchdog: Only disable/enable watchdog if neccessary
Don't take any action on an unsuccessful write to /proc. Signed-off-by: Mandeep Singh Baines <[email protected]> Cc: Marcin Slusarz <[email protected]> Cc: Don Zickus <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Frederic Weisbecker <[email protected]> Link: http://lkml.kernel.org/r/[email protected] Signed-off-by: Ingo Molnar <[email protected]>
-rw-r--r--kernel/watchdog.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/kernel/watchdog.c b/kernel/watchdog.c
index a06972d71060..cf0e09f452e7 100644
--- a/kernel/watchdog.c
+++ b/kernel/watchdog.c
@@ -507,15 +507,19 @@ static void watchdog_disable_all_cpus(void)
int proc_dowatchdog_enabled(struct ctl_table *table, int write,
void __user *buffer, size_t *length, loff_t *ppos)
{
- proc_dointvec(table, write, buffer, length, ppos);
+ int ret;
- if (write) {
- if (watchdog_enabled)
- watchdog_enable_all_cpus();
- else
- watchdog_disable_all_cpus();
- }
- return 0;
+ ret = proc_dointvec(table, write, buffer, length, ppos);
+ if (ret || !write)
+ goto out;
+
+ if (watchdog_enabled)
+ watchdog_enable_all_cpus();
+ else
+ watchdog_disable_all_cpus();
+
+out:
+ return ret;
}
int proc_dowatchdog_thresh(struct ctl_table *table, int write,