diff options
| -rw-r--r-- | kernel/watchdog.c | 11 | 
1 files changed, 4 insertions, 7 deletions
diff --git a/kernel/watchdog.c b/kernel/watchdog.c index 997c6a16ec2..75a2ab3d0b0 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 */  |