39 lines
1.5 KiB
Diff
39 lines
1.5 KiB
Diff
|
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux.git;a=blobdiff_plain;f=kernel%2Fwatchdog.c;h=75a2ab3d0b0208dfa51e40339ffd00206622732e;hp=997c6a16ec2278969a10f251f63f237e7559d42e;hb=3935e89505a1c3ab3f3b0c7ef0eae54124f48905;hpb=74779e22261172ea728b989310f6ecc991b57d62
|
||
|
|
||
|
diff --git a/kernel/watchdog.c b/kernel/watchdog.c
|
||
|
index 997c6a1..75a2ab3 100644
|
||
|
--- a/kernel/watchdog.c
|
||
|
+++ b/kernel/watchdog.c
|
||
|
@@ -344,6 +344,10 @@ static void watchdog_enable(unsigned int cpu)
|
||
|
{
|
||
|
struct hrtimer *hrtimer = &__raw_get_cpu_var(watchdog_hrtimer);
|
||
|
|
||
|
+ /* kick off the timer for the hardlockup detector */
|
||
|
+ hrtimer_init(hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
|
||
|
+ hrtimer->function = watchdog_timer_fn;
|
||
|
+
|
||
|
if (!watchdog_enabled) {
|
||
|
kthread_park(current);
|
||
|
return;
|
||
|
@@ -352,10 +356,6 @@ static void watchdog_enable(unsigned int cpu)
|
||
|
/* Enable the perf event */
|
||
|
watchdog_nmi_enable(cpu);
|
||
|
|
||
|
- /* kick off the timer for the hardlockup detector */
|
||
|
- hrtimer_init(hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
|
||
|
- hrtimer->function = watchdog_timer_fn;
|
||
|
-
|
||
|
/* done here because hrtimer_start can only pin to smp_processor_id() */
|
||
|
hrtimer_start(hrtimer, ns_to_ktime(sample_period),
|
||
|
HRTIMER_MODE_REL_PINNED);
|
||
|
@@ -369,9 +369,6 @@ static void watchdog_disable(unsigned int cpu)
|
||
|
{
|
||
|
struct hrtimer *hrtimer = &__raw_get_cpu_var(watchdog_hrtimer);
|
||
|
|
||
|
- if (!watchdog_enabled)
|
||
|
- return;
|
||
|
-
|
||
|
watchdog_set_prio(SCHED_NORMAL, 0);
|
||
|
hrtimer_cancel(hrtimer);
|
||
|
/* disable the perf event */
|