Messages in this thread | | | Date | Mon, 1 Jul 2013 21:36:37 +0200 | From | Oleg Nesterov <> | Subject | Re: [PATCH v2 4/4] tracing/kprobes: Turn trace_probe->files into list_head |
| |
On 07/01, Steven Rostedt wrote: > > On Thu, 2013-06-20 at 19:38 +0200, Oleg Nesterov wrote: > > > -static int > > -trace_probe_file_index(struct trace_probe *tp, struct ftrace_event_file *file) > > +static struct event_file_link * > > +find_event_file_link(struct trace_probe *tp, struct ftrace_event_file *file) > > { > > - struct ftrace_event_file **files; > > - int i; > > + struct event_file_link *link; > > > > - /* > > - * Since all tp->files updater is protected by probe_enable_lock, > > - * we don't need to lock an rcu_read_lock. > > - */ > > - files = rcu_dereference_raw(tp->files); > > - if (files) { > > - for (i = 0; files[i]; i++) > > - if (files[i] == file) > > - return i; > > - } > > + list_for_each_entry(link, &tp->files, list) > > + if (link->file == file) > > + return link; > > Shouldn't that be list_for_each_entry_rcu()?
No.
This is the writer which modifies the list. enable/disable_trace_probe should be serialized wrt each other / itself anyway, otherwise they are buggy in any case.
Oleg.
| |