Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
[pandora-kernel.git] / kernel / softlockup.c
index 5ea6317..8fa7040 100644 (file)
@@ -50,6 +50,16 @@ void touch_softlockup_watchdog(void)
 }
 EXPORT_SYMBOL(touch_softlockup_watchdog);
 
+void touch_all_softlockup_watchdogs(void)
+{
+       int cpu;
+
+       /* Cause each CPU to re-update its timestamp rather than complain */
+       for_each_online_cpu(cpu)
+               per_cpu(touch_timestamp, cpu) = 0;
+}
+EXPORT_SYMBOL(touch_all_softlockup_watchdogs);
+
 /*
  * This callback runs from the timer interrupt, and checks
  * whether the watchdog thread has hung or not:
@@ -61,9 +71,10 @@ void softlockup_tick(void)
        unsigned long print_timestamp;
        unsigned long now;
 
-       /* watchdog task hasn't updated timestamp yet */
-       if (touch_timestamp == 0)
+       if (touch_timestamp == 0) {
+               touch_softlockup_watchdog();
                return;
+       }
 
        print_timestamp = per_cpu(print_timestamp, this_cpu);