watchdog/buddy: cleanup how watchdog_buddy_check_hardlockup() is called
[linux-2.6-microblaze.git] / kernel / watchdog.c
index 85f4839..6cc46b8 100644 (file)
@@ -131,9 +131,12 @@ static bool is_hardlockup(unsigned int cpu)
        return false;
 }
 
-static unsigned long watchdog_hardlockup_kick(void)
+static void watchdog_hardlockup_kick(void)
 {
-       return atomic_inc_return(this_cpu_ptr(&hrtimer_interrupts));
+       int new_interrupts;
+
+       new_interrupts = atomic_inc_return(this_cpu_ptr(&hrtimer_interrupts));
+       watchdog_buddy_check_hardlockup(new_interrupts);
 }
 
 void watchdog_hardlockup_check(unsigned int cpu, struct pt_regs *regs)
@@ -195,7 +198,7 @@ void watchdog_hardlockup_check(unsigned int cpu, struct pt_regs *regs)
 
 #else /* CONFIG_HARDLOCKUP_DETECTOR_COUNTS_HRTIMER */
 
-static inline unsigned long watchdog_hardlockup_kick(void) { return 0; }
+static inline void watchdog_hardlockup_kick(void) { }
 
 #endif /* !CONFIG_HARDLOCKUP_DETECTOR_COUNTS_HRTIMER */
 
@@ -449,15 +452,11 @@ static enum hrtimer_restart watchdog_timer_fn(struct hrtimer *hrtimer)
        struct pt_regs *regs = get_irq_regs();
        int duration;
        int softlockup_all_cpu_backtrace = sysctl_softlockup_all_cpu_backtrace;
-       unsigned long hrtimer_interrupts;
 
        if (!watchdog_enabled)
                return HRTIMER_NORESTART;
 
-       hrtimer_interrupts = watchdog_hardlockup_kick();
-
-       /* test for hardlockups */
-       watchdog_buddy_check_hardlockup(hrtimer_interrupts);
+       watchdog_hardlockup_kick();
 
        /* kick the softlockup detector */
        if (completion_done(this_cpu_ptr(&softlockup_completion))) {