Commit e03b4a0
kprobes: Remove NMI context check
The in_nmi() check in pre_handler_kretprobe() is meant to avoid
recursion, and blindly assumes that anything NMI is recursive.
However, since commit:
9b38cc7 ("kretprobe: Prevent triggering kretprobe from within kprobe_flush_task")
there is a better way to detect and avoid actual recursion.
By setting a dummy kprobe, any actual exceptions will terminate early
(by trying to handle the dummy kprobe), and recursion will not happen.
Employ this to avoid the kretprobe_table_lock() recursion, replacing
the over-eager in_nmi() check.
Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://lkml.kernel.org/r/159870615628.1229682.6087311596892125907.stgit@devnote21 parent 5e96ce8 commit e03b4a0
1 file changed
Lines changed: 4 additions & 12 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1359 | 1359 | | |
1360 | 1360 | | |
1361 | 1361 | | |
1362 | | - | |
| 1362 | + | |
| 1363 | + | |
1363 | 1364 | | |
1364 | 1365 | | |
1365 | 1366 | | |
| |||
1369 | 1370 | | |
1370 | 1371 | | |
1371 | 1372 | | |
| 1373 | + | |
| 1374 | + | |
1372 | 1375 | | |
1373 | 1376 | | |
1374 | 1377 | | |
| |||
2035 | 2038 | | |
2036 | 2039 | | |
2037 | 2040 | | |
2038 | | - | |
2039 | | - | |
2040 | | - | |
2041 | | - | |
2042 | | - | |
2043 | | - | |
2044 | | - | |
2045 | | - | |
2046 | | - | |
2047 | | - | |
2048 | | - | |
2049 | 2041 | | |
2050 | 2042 | | |
2051 | 2043 | | |
| |||
0 commit comments