From: Andrew Morton Cc: Andi Kleen Cc: Ingo Molnar Cc: Badari Pulavarty Signed-off-by: Andrew Morton --- arch/i386/kernel/nmi.c | 10 +++++++++- arch/x86_64/kernel/nmi.c | 10 +++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff -puN arch/i386/kernel/nmi.c~spinlock-debug-all-cpu-backtrace-fix-2 arch/i386/kernel/nmi.c --- a/arch/i386/kernel/nmi.c~spinlock-debug-all-cpu-backtrace-fix-2 +++ a/arch/i386/kernel/nmi.c @@ -1048,7 +1048,15 @@ int proc_nmi_enabled(struct ctl_table *t void __trigger_all_cpu_backtrace(void) { - backtrace_mask = CPU_MASK_ALL; + int i; + + backtrace_mask = cpu_online_map; + /* Wait for up to 10 seconds for all CPUs to do the backtrace */ + for (i = 0; i < 10 * 1000; i++) { + if (cpus_empty(backtrace_mask)) + break; + mdelay(1); + } } EXPORT_SYMBOL(nmi_active); diff -puN arch/x86_64/kernel/nmi.c~spinlock-debug-all-cpu-backtrace-fix-2 arch/x86_64/kernel/nmi.c --- a/arch/x86_64/kernel/nmi.c~spinlock-debug-all-cpu-backtrace-fix-2 +++ a/arch/x86_64/kernel/nmi.c @@ -947,7 +947,15 @@ int proc_nmi_enabled(struct ctl_table *t void __trigger_all_cpu_backtrace(void) { - backtrace_mask = CPU_MASK_ALL; + int i; + + backtrace_mask = cpu_online_map; + /* Wait for up to 10 seconds for all CPUs to do the backtrace */ + for (i = 0; i < 10 * 1000; i++) { + if (cpus_empty(backtrace_mask)) + break; + mdelay(1); + } } EXPORT_SYMBOL(nmi_active); _