Commit afed26d151ba90b08361d4af0223daa362136ebd
Exists in
master
and in
4 other branches
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
Showing 2 changed files Side-by-side Diff
arch/x86/kernel/kgdb.c
... | ... | @@ -455,12 +455,7 @@ |
455 | 455 | return NOTIFY_DONE; |
456 | 456 | |
457 | 457 | case DIE_NMI_IPI: |
458 | - if (atomic_read(&kgdb_active) != -1) { | |
459 | - /* KGDB CPU roundup */ | |
460 | - kgdb_nmicallback(raw_smp_processor_id(), regs); | |
461 | - was_in_debug_nmi[raw_smp_processor_id()] = 1; | |
462 | - touch_nmi_watchdog(); | |
463 | - } | |
458 | + /* Just ignore, we will handle the roundup on DIE_NMI. */ | |
464 | 459 | return NOTIFY_DONE; |
465 | 460 | |
466 | 461 | case DIE_NMIUNKNOWN: |
kernel/kgdb.c
... | ... | @@ -590,6 +590,7 @@ |
590 | 590 | |
591 | 591 | /* Signal the primary CPU that we are done: */ |
592 | 592 | atomic_set(&cpu_in_kgdb[cpu], 0); |
593 | + touch_softlockup_watchdog(); | |
593 | 594 | clocksource_touch_watchdog(); |
594 | 595 | local_irq_restore(flags); |
595 | 596 | } |
... | ... | @@ -1432,6 +1433,7 @@ |
1432 | 1433 | atomic_read(&kgdb_cpu_doing_single_step) != cpu) { |
1433 | 1434 | |
1434 | 1435 | atomic_set(&kgdb_active, -1); |
1436 | + touch_softlockup_watchdog(); | |
1435 | 1437 | clocksource_touch_watchdog(); |
1436 | 1438 | local_irq_restore(flags); |
1437 | 1439 | |
... | ... | @@ -1524,6 +1526,7 @@ |
1524 | 1526 | kgdb_restore: |
1525 | 1527 | /* Free kgdb_active */ |
1526 | 1528 | atomic_set(&kgdb_active, -1); |
1529 | + touch_softlockup_watchdog(); | |
1527 | 1530 | clocksource_touch_watchdog(); |
1528 | 1531 | local_irq_restore(flags); |
1529 | 1532 |