Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
992414a1
Commit
992414a1
authored
Aug 03, 2020
by
Ingo Molnar
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'locking/nmi' into locking/core, to pick up completed topic branch
Signed-off-by:
Ingo Molnar
<
mingo@kernel.org
>
parents
a68415c2
ed004953
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
16 additions
and
1 deletion
+16
-1
arch/x86/Kconfig.debug
arch/x86/Kconfig.debug
+3
-0
kernel/locking/lockdep.c
kernel/locking/lockdep.c
+7
-1
lib/Kconfig.debug
lib/Kconfig.debug
+6
-0
No files found.
arch/x86/Kconfig.debug
View file @
992414a1
...
@@ -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
...
...
kernel/locking/lockdep.c
View file @
992414a1
...
@@ -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
;
/*
/*
...
...
lib/Kconfig.debug
View file @
992414a1
...
@@ -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
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment