Browse Source

debug_core: move all watch dog syncs to a single function

Move the various clock and watch dog syncs to a single function in
advance of adding another sync for the rcu stall detector.

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Jason Wessel 15 years ago
parent
commit
16cdc628c3
1 changed files with 9 additions and 6 deletions
  1. 9 6
      kernel/debug/debug_core.c

+ 9 - 6
kernel/debug/debug_core.c

@@ -470,6 +470,12 @@ static void dbg_cpu_switch(int cpu, int next_cpu)
 	kgdb_info[next_cpu].exception_state |= DCPU_NEXT_MASTER;
 	kgdb_info[next_cpu].exception_state |= DCPU_NEXT_MASTER;
 }
 }
 
 
+static void dbg_touch_watchdogs(void)
+{
+	touch_softlockup_watchdog_sync();
+	clocksource_touch_watchdog();
+}
+
 static int kgdb_cpu_enter(struct kgdb_state *ks, struct pt_regs *regs)
 static int kgdb_cpu_enter(struct kgdb_state *ks, struct pt_regs *regs)
 {
 {
 	unsigned long flags;
 	unsigned long flags;
@@ -523,8 +529,7 @@ return_normal:
 			if (trace_on)
 			if (trace_on)
 				tracing_on();
 				tracing_on();
 			atomic_dec(&cpu_in_kgdb[cpu]);
 			atomic_dec(&cpu_in_kgdb[cpu]);
-			touch_softlockup_watchdog_sync();
-			clocksource_touch_watchdog();
+			dbg_touch_watchdogs();
 			local_irq_restore(flags);
 			local_irq_restore(flags);
 			return 0;
 			return 0;
 		}
 		}
@@ -541,8 +546,7 @@ return_normal:
 	    (kgdb_info[cpu].task &&
 	    (kgdb_info[cpu].task &&
 	     kgdb_info[cpu].task->pid != kgdb_sstep_pid) && --sstep_tries) {
 	     kgdb_info[cpu].task->pid != kgdb_sstep_pid) && --sstep_tries) {
 		atomic_set(&kgdb_active, -1);
 		atomic_set(&kgdb_active, -1);
-		touch_softlockup_watchdog_sync();
-		clocksource_touch_watchdog();
+		dbg_touch_watchdogs();
 		local_irq_restore(flags);
 		local_irq_restore(flags);
 
 
 		goto acquirelock;
 		goto acquirelock;
@@ -659,8 +663,7 @@ kgdb_restore:
 		tracing_on();
 		tracing_on();
 	/* Free kgdb_active */
 	/* Free kgdb_active */
 	atomic_set(&kgdb_active, -1);
 	atomic_set(&kgdb_active, -1);
-	touch_softlockup_watchdog_sync();
-	clocksource_touch_watchdog();
+	dbg_touch_watchdogs();
 	local_irq_restore(flags);
 	local_irq_restore(flags);
 
 
 	return kgdb_info[cpu].ret_state;
 	return kgdb_info[cpu].ret_state;