2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2025-01-06 04:33:58 +08:00

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

Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
Ingo Molnar 2020-08-03 13:00:27 +02:00
commit 992414a18c
3 changed files with 16 additions and 1 deletions

View File

@ -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

View File

@ -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)
* 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;
/* /*

View File

@ -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