Commit e85ceae9 authored by Jan Kiszka's avatar Jan Kiszka Committed by Jason Wessel

kgdb, x86: Avoid invoking kgdb_nmicallback twice per NMI

Stress-testing KVM's latest NMI support with kgdbts inside an SMP guest,
I came across spurious unhandled NMIs while running the singlestep test.
Looking closer at the code path each NMI takes when KGDB is enabled, I
noticed that kgdb_nmicallback is called twice per event: One time via
DIE_NMI_IPI notification, the second time on DIE_NMI. Removing the first
invocation cures the unhandled NMIs here.
Signed-off-by: default avatarJan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: default avatarJason Wessel <jason.wessel@windriver.com>
parent fec6ed1d
...@@ -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:
......
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