Commit 992414a1 authored by Ingo Molnar's avatar Ingo Molnar

Merge branch 'locking/nmi' into locking/core, to pick up completed topic branch

Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
parents a68415c2 ed004953
...@@ -3,6 +3,9 @@ ...@@ -3,6 +3,9 @@
config TRACE_IRQFLAGS_SUPPORT config TRACE_IRQFLAGS_SUPPORT
def_bool y def_bool y
config TRACE_IRQFLAGS_NMI_SUPPORT
def_bool y
config EARLY_PRINTK_USB config EARLY_PRINTK_USB
bool bool
......
...@@ -3714,6 +3714,9 @@ void noinstr lockdep_hardirqs_on(unsigned long ip) ...@@ -3714,6 +3714,9 @@ void noinstr lockdep_hardirqs_on(unsigned long ip)
* and not rely on hardware state like normal interrupts. * and not rely on hardware state like normal interrupts.
*/ */
if (unlikely(in_nmi())) { if (unlikely(in_nmi())) {
if (!IS_ENABLED(CONFIG_TRACE_IRQFLAGS_NMI))
return;
/* /*
* Skip: * Skip:
* - recursion check, because NMI can hit lockdep; * - recursion check, because NMI can hit lockdep;
...@@ -3773,7 +3776,10 @@ void noinstr lockdep_hardirqs_off(unsigned long ip) ...@@ -3773,7 +3776,10 @@ void noinstr lockdep_hardirqs_off(unsigned long ip)
* they will restore the software state. This ensures the software * they will restore the software state. This ensures the software
* state is consistent inside NMIs as well. * state is consistent inside NMIs as well.
*/ */
if (unlikely(!in_nmi() && (current->lockdep_recursion & LOCKDEP_RECURSION_MASK))) if (in_nmi()) {
if (!IS_ENABLED(CONFIG_TRACE_IRQFLAGS_NMI))
return;
} else if (current->lockdep_recursion & LOCKDEP_RECURSION_MASK)
return; return;
/* /*
......
...@@ -1326,11 +1326,17 @@ config WW_MUTEX_SELFTEST ...@@ -1326,11 +1326,17 @@ config WW_MUTEX_SELFTEST
endmenu # lock debugging endmenu # lock debugging
config TRACE_IRQFLAGS config TRACE_IRQFLAGS
depends on TRACE_IRQFLAGS_SUPPORT
bool bool
help help
Enables hooks to interrupt enabling and disabling for Enables hooks to interrupt enabling and disabling for
either tracing or lock debugging. either tracing or lock debugging.
config TRACE_IRQFLAGS_NMI
def_bool y
depends on TRACE_IRQFLAGS
depends on TRACE_IRQFLAGS_NMI_SUPPORT
config STACKTRACE config STACKTRACE
bool "Stack backtrace support" bool "Stack backtrace support"
depends on STACKTRACE_SUPPORT depends on STACKTRACE_SUPPORT
......
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