]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - kernel/trace/trace.c
printk/nmi: Prevent deadlock when accessing the main log buffer in NMI
[mirror_ubuntu-bionic-kernel.git] / kernel / trace / trace.c
index 2f7297a45b456e111cbe064e64847bded00f5e8b..c5befa4884bf8dd1338b11375ce1e177b72b767b 100644 (file)
@@ -8198,6 +8198,7 @@ void ftrace_dump(enum ftrace_dump_mode oops_dump_mode)
        tracing_off();
 
        local_irq_save(flags);
+       printk_nmi_direct_enter();
 
        /* Simulate the iterator */
        trace_init_global_iter(&iter);
@@ -8277,7 +8278,8 @@ void ftrace_dump(enum ftrace_dump_mode oops_dump_mode)
        for_each_tracing_cpu(cpu) {
                atomic_dec(&per_cpu_ptr(iter.trace_buffer->data, cpu)->disabled);
        }
-       atomic_dec(&dump_running);
+       atomic_dec(&dump_running);
+       printk_nmi_direct_exit();
        local_irq_restore(flags);
 }
 EXPORT_SYMBOL_GPL(ftrace_dump);