diff options
author | Mathieu Desnoyers <mathieu.desnoyers@efficios.com> | 2014-05-08 13:47:49 +0200 |
---|---|---|
committer | Steven Rostedt <rostedt@goodmis.org> | 2014-05-08 15:10:56 +0200 |
commit | 8058bd0faad860e75547cc5cb5d4ade016247a79 (patch) | |
tree | 71172e9ae00c358e23e93c451f0b7dc45d98f436 /include | |
parent | trace: module: Maintain a valid user count (diff) | |
download | linux-8058bd0faad860e75547cc5cb5d4ade016247a79.tar.xz linux-8058bd0faad860e75547cc5cb5d4ade016247a79.zip |
tracepoint: Fix use of tracepoint funcs after rcu free
Commit de7b2973903c "tracepoint: Use struct pointer instead of name hash
for reg/unreg tracepoints" introduces a use after free by calling
release_probes on the old struct tracepoint array before the newly
allocated array is published with rcu_assign_pointer. There is a race
window where tracepoints (RCU readers) can perform a
"use-after-grace-period-after-free", which shows up as a GPF in
stress-tests.
Link: http://lkml.kernel.org/r/53698021.5020108@oracle.com
Link: http://lkml.kernel.org/p/1399549669-25465-1-git-send-email-mathieu.desnoyers@efficios.com
Reported-by: Sasha Levin <sasha.levin@oracle.com>
CC: Oleg Nesterov <oleg@redhat.com>
CC: Dave Jones <davej@redhat.com>
Fixes: de7b2973903c "tracepoint: Use struct pointer instead of name hash for reg/unreg tracepoints"
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to '')
0 files changed, 0 insertions, 0 deletions