Commit afed26d1 authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb

* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb:
  kgdb: call touch_softlockup_watchdog on resume
  kgdb, x86: Avoid invoking kgdb_nmicallback twice per NMI
parents 6106611e cc1e0f4f
...@@ -455,12 +455,7 @@ static int __kgdb_notify(struct die_args *args, unsigned long cmd) ...@@ -455,12 +455,7 @@ static int __kgdb_notify(struct die_args *args, unsigned long cmd)
return NOTIFY_DONE; return NOTIFY_DONE;
case DIE_NMI_IPI: case DIE_NMI_IPI:
if (atomic_read(&kgdb_active) != -1) { /* Just ignore, we will handle the roundup on DIE_NMI. */
/* KGDB CPU roundup */
kgdb_nmicallback(raw_smp_processor_id(), regs);
was_in_debug_nmi[raw_smp_processor_id()] = 1;
touch_nmi_watchdog();
}
return NOTIFY_DONE; return NOTIFY_DONE;
case DIE_NMIUNKNOWN: case DIE_NMIUNKNOWN:
......
...@@ -590,6 +590,7 @@ static void kgdb_wait(struct pt_regs *regs) ...@@ -590,6 +590,7 @@ static void kgdb_wait(struct pt_regs *regs)
/* Signal the primary CPU that we are done: */ /* Signal the primary CPU that we are done: */
atomic_set(&cpu_in_kgdb[cpu], 0); atomic_set(&cpu_in_kgdb[cpu], 0);
touch_softlockup_watchdog();
clocksource_touch_watchdog(); clocksource_touch_watchdog();
local_irq_restore(flags); local_irq_restore(flags);
} }
...@@ -1432,6 +1433,7 @@ kgdb_handle_exception(int evector, int signo, int ecode, struct pt_regs *regs) ...@@ -1432,6 +1433,7 @@ kgdb_handle_exception(int evector, int signo, int ecode, struct pt_regs *regs)
atomic_read(&kgdb_cpu_doing_single_step) != cpu) { atomic_read(&kgdb_cpu_doing_single_step) != cpu) {
atomic_set(&kgdb_active, -1); atomic_set(&kgdb_active, -1);
touch_softlockup_watchdog();
clocksource_touch_watchdog(); clocksource_touch_watchdog();
local_irq_restore(flags); local_irq_restore(flags);
...@@ -1524,6 +1526,7 @@ kgdb_handle_exception(int evector, int signo, int ecode, struct pt_regs *regs) ...@@ -1524,6 +1526,7 @@ kgdb_handle_exception(int evector, int signo, int ecode, struct pt_regs *regs)
kgdb_restore: kgdb_restore:
/* Free kgdb_active */ /* Free kgdb_active */
atomic_set(&kgdb_active, -1); atomic_set(&kgdb_active, -1);
touch_softlockup_watchdog();
clocksource_touch_watchdog(); clocksource_touch_watchdog();
local_irq_restore(flags); local_irq_restore(flags);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment