|
@@ -196,6 +196,18 @@ void kgdb_arch_set_pc(struct pt_regs *regs, unsigned long ip)
|
|
|
instruction_pointer(regs) = ip;
|
|
|
}
|
|
|
|
|
|
+static void kgdb_call_nmi_hook(void *ignored)
|
|
|
+{
|
|
|
+ kgdb_nmicallback(raw_smp_processor_id(), NULL);
|
|
|
+}
|
|
|
+
|
|
|
+void kgdb_roundup_cpus(unsigned long flags)
|
|
|
+{
|
|
|
+ local_irq_enable();
|
|
|
+ smp_call_function(kgdb_call_nmi_hook, NULL, 0);
|
|
|
+ local_irq_disable();
|
|
|
+}
|
|
|
+
|
|
|
struct kgdb_arch arch_kgdb_ops = {
|
|
|
/* breakpoint instruction: TRAP_S 0x3 */
|
|
|
#ifdef CONFIG_CPU_BIG_ENDIAN
|