diff options
author | Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> | 2013-05-09 07:44:21 +0200 |
---|---|---|
committer | Steven Rostedt <rostedt@goodmis.org> | 2013-05-10 02:11:48 +0200 |
commit | 3f2367ba7cbf13ec0f3f1e93b833a7eacd1ab4b8 (patch) | |
tree | 81bac89b0b20458cb8505a3bdef4b9189ff4057e /lib/kobject.c | |
parent | ftrace, kprobes: Fix a deadlock on ftrace_regex_lock (diff) | |
download | linux-3f2367ba7cbf13ec0f3f1e93b833a7eacd1ab4b8.tar.xz linux-3f2367ba7cbf13ec0f3f1e93b833a7eacd1ab4b8.zip |
ftrace: Cleanup regex_lock and ftrace_lock around hash updating
Cleanup regex_lock and ftrace_lock locking points around
ftrace_ops hash update code.
The new rule is that regex_lock protects ops->*_hash
read-update-write code for each ftrace_ops. Usually,
hash update is done by following sequence.
1. allocate a new local hash and copy the original hash.
2. update the local hash.
3. move(actually, copy) back the local hash to ftrace_ops.
4. update ftrace entries if needed.
5. release the local hash.
This makes regex_lock protect #1-#4, and ftrace_lock
to protect #3, #4 and adding and removing ftrace_ops from the
ftrace_ops_list. The ftrace_lock protects #3 as well because
the move functions update the entries too.
Link: http://lkml.kernel.org/r/20130509054421.30398.83411.stgit@mhiramat-M0-7522
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'lib/kobject.c')
0 files changed, 0 insertions, 0 deletions