Skip to content

Commit

Permalink
watchdog: Fix sysctl consistency
Browse files Browse the repository at this point in the history
If it was not possible to enable watchdog for any cpu, switch
watchdog_enabled back to 0, because it's visible via
kernel.watchdog sysctl.

Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
Signed-off-by: Don Zickus <dzickus@redhat.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: <stable@kernel.org>
LKML-Reference: <1296230433-6261-2-git-send-email-dzickus@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
  • Loading branch information
Marcin Slusarz authored and Ingo Molnar committed Jan 31, 2011
1 parent 4135038 commit 3973576
Showing 1 changed file with 7 additions and 6 deletions.
13 changes: 7 additions & 6 deletions kernel/watchdog.c
Original file line number Diff line number Diff line change
Expand Up @@ -429,9 +429,6 @@ static int watchdog_enable(int cpu)
wake_up_process(p);
}

/* if any cpu succeeds, watchdog is considered enabled for the system */
watchdog_enabled = 1;

return 0;
}

Expand Down Expand Up @@ -459,12 +456,16 @@ static void watchdog_disable(int cpu)
static void watchdog_enable_all_cpus(void)
{
int cpu;
int result = 0;

watchdog_enabled = 0;

for_each_online_cpu(cpu)
result += watchdog_enable(cpu);
if (!watchdog_enable(cpu))
/* if any cpu succeeds, watchdog is considered
enabled for the system */
watchdog_enabled = 1;

if (result)
if (!watchdog_enabled)
printk(KERN_ERR "watchdog: failed to be enabled on some cpus\n");

}
Expand Down

0 comments on commit 3973576

Please sign in to comment.