mirror of
https://github.com/torvalds/linux.git
synced 2024-12-28 22:02:28 +00: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:
commit
992414a18c
@ -3,6 +3,9 @@
|
||||
config TRACE_IRQFLAGS_SUPPORT
|
||||
def_bool y
|
||||
|
||||
config TRACE_IRQFLAGS_NMI_SUPPORT
|
||||
def_bool y
|
||||
|
||||
config EARLY_PRINTK_USB
|
||||
bool
|
||||
|
||||
|
@ -3714,6 +3714,9 @@ void noinstr lockdep_hardirqs_on(unsigned long ip)
|
||||
* and not rely on hardware state like normal interrupts.
|
||||
*/
|
||||
if (unlikely(in_nmi())) {
|
||||
if (!IS_ENABLED(CONFIG_TRACE_IRQFLAGS_NMI))
|
||||
return;
|
||||
|
||||
/*
|
||||
* Skip:
|
||||
* - 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
|
||||
* 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;
|
||||
|
||||
/*
|
||||
|
@ -1326,11 +1326,17 @@ config WW_MUTEX_SELFTEST
|
||||
endmenu # lock debugging
|
||||
|
||||
config TRACE_IRQFLAGS
|
||||
depends on TRACE_IRQFLAGS_SUPPORT
|
||||
bool
|
||||
help
|
||||
Enables hooks to interrupt enabling and disabling for
|
||||
either tracing or lock debugging.
|
||||
|
||||
config TRACE_IRQFLAGS_NMI
|
||||
def_bool y
|
||||
depends on TRACE_IRQFLAGS
|
||||
depends on TRACE_IRQFLAGS_NMI_SUPPORT
|
||||
|
||||
config STACKTRACE
|
||||
bool "Stack backtrace support"
|
||||
depends on STACKTRACE_SUPPORT
|
||||
|
Loading…
Reference in New Issue
Block a user