diff options
Diffstat (limited to 'lib/nmi_backtrace.c')
-rw-r--r-- | lib/nmi_backtrace.c | 3 |
1 files changed, 0 insertions, 3 deletions
diff --git a/lib/nmi_backtrace.c b/lib/nmi_backtrace.c index 61a6b5aab07e..15ca78e1c7d4 100644 --- a/lib/nmi_backtrace.c +++ b/lib/nmi_backtrace.c | |||
@@ -87,11 +87,9 @@ void nmi_trigger_cpumask_backtrace(const cpumask_t *mask, | |||
87 | 87 | ||
88 | bool nmi_cpu_backtrace(struct pt_regs *regs) | 88 | bool nmi_cpu_backtrace(struct pt_regs *regs) |
89 | { | 89 | { |
90 | static arch_spinlock_t lock = __ARCH_SPIN_LOCK_UNLOCKED; | ||
91 | int cpu = smp_processor_id(); | 90 | int cpu = smp_processor_id(); |
92 | 91 | ||
93 | if (cpumask_test_cpu(cpu, to_cpumask(backtrace_mask))) { | 92 | if (cpumask_test_cpu(cpu, to_cpumask(backtrace_mask))) { |
94 | arch_spin_lock(&lock); | ||
95 | if (regs && cpu_in_idle(instruction_pointer(regs))) { | 93 | if (regs && cpu_in_idle(instruction_pointer(regs))) { |
96 | pr_warn("NMI backtrace for cpu %d skipped: idling at %pS\n", | 94 | pr_warn("NMI backtrace for cpu %d skipped: idling at %pS\n", |
97 | cpu, (void *)instruction_pointer(regs)); | 95 | cpu, (void *)instruction_pointer(regs)); |
@@ -102,7 +100,6 @@ bool nmi_cpu_backtrace(struct pt_regs *regs) | |||
102 | else | 100 | else |
103 | dump_stack(); | 101 | dump_stack(); |
104 | } | 102 | } |
105 | arch_spin_unlock(&lock); | ||
106 | cpumask_clear_cpu(cpu, to_cpumask(backtrace_mask)); | 103 | cpumask_clear_cpu(cpu, to_cpumask(backtrace_mask)); |
107 | return true; | 104 | return true; |
108 | } | 105 | } |