diff options
-rw-r--r-- | arch/arc/kernel/kgdb.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/arc/kernel/kgdb.c b/arch/arc/kernel/kgdb.c index a7698fb14818..a2ff5c5d1450 100644 --- a/arch/arc/kernel/kgdb.c +++ b/arch/arc/kernel/kgdb.c | |||
@@ -196,6 +196,18 @@ void kgdb_arch_set_pc(struct pt_regs *regs, unsigned long ip) | |||
196 | instruction_pointer(regs) = ip; | 196 | instruction_pointer(regs) = ip; |
197 | } | 197 | } |
198 | 198 | ||
199 | static void kgdb_call_nmi_hook(void *ignored) | ||
200 | { | ||
201 | kgdb_nmicallback(raw_smp_processor_id(), NULL); | ||
202 | } | ||
203 | |||
204 | void kgdb_roundup_cpus(unsigned long flags) | ||
205 | { | ||
206 | local_irq_enable(); | ||
207 | smp_call_function(kgdb_call_nmi_hook, NULL, 0); | ||
208 | local_irq_disable(); | ||
209 | } | ||
210 | |||
199 | struct kgdb_arch arch_kgdb_ops = { | 211 | struct kgdb_arch arch_kgdb_ops = { |
200 | /* breakpoint instruction: TRAP_S 0x3 */ | 212 | /* breakpoint instruction: TRAP_S 0x3 */ |
201 | #ifdef CONFIG_CPU_BIG_ENDIAN | 213 | #ifdef CONFIG_CPU_BIG_ENDIAN |