Messages in this thread |  | | | Date | Mon, 23 Mar 2009 15:18:49 -0400 (EDT) | | From | Steven Rostedt <> | | Subject | Re: [PATCH 3/5] tracing/ftrace: check if debugfs is registered before creating files |
| |
On Sun, 22 Mar 2009, Frederic Weisbecker wrote:
> Impact: fix a crash with ftrace={nop,boot} parameter > > If the nop or initcall tracers are launched as boot tracers, > they will attempt to create their option directory and files. > But these tracers are registered very early and then assigned > as "boot tracers" very early if asked to. > > Since they do this before debugfs has been registered (core initcall), > a crash is triggered. > > Another early tracers could also come later. So we fix it by > checking if debugfs is initialized before creating the root > tracing directory. > > Cc: Greg Kroah-Hartman <gregkh@suse.de> > Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com> > --- > kernel/trace/trace.c | 3 +++ > 1 files changed, 3 insertions(+), 0 deletions(-) > > diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c > index ace685c..f0e1337 100644 > --- a/kernel/trace/trace.c > +++ b/kernel/trace/trace.c > @@ -3513,6 +3513,9 @@ struct dentry *tracing_init_dentry(void) > if (d_tracer) > return d_tracer; > > + if (!debugfs_initialized()) > + return NULL; > + > d_tracer = debugfs_create_dir("tracing", NULL); >
Hmm, those tracers should separate out the debugfs code, and put it into a fs_initcall(), where debugfs should already initialized.
-- Steve
|  |