Re: [PATCH 07/12] add ftrace_event_call void * 'data' field

Frederic Weisbecker
2009-08-17T23:09:31Z

On Mon, Aug 17, 2009 at 06:19:33PM -0400, Steven Rostedt wrote:
>
> On Tue, 11 Aug 2009, Frederic Weisbecker wrote:
>
> > On Mon, Aug 10, 2009 at 04:52:44PM -0400, Jason Baron wrote:
> > > add an optional * void pointer to 'ftrace_event_call' that is
> > > passed in for regfunc and unregfunc.
> > >
> > > Signed-off-by: Jason Baron <jbaron@redhat.com>
> > >
> > > ---
> > > include/linux/ftrace_event.h | 5 +++--
> > > include/trace/ftrace.h | 4 ++--
> > > kernel/trace/trace_events.c | 4 ++--
> > > 3 files changed, 7 insertions(+), 6 deletions(-)
> > >
> > > diff --git a/include/linux/ftrace_event.h b/include/linux/ftrace_event.h
> > > index ac8c6f8..8544f12 100644
> > > --- a/include/linux/ftrace_event.h
> > > +++ b/include/linux/ftrace_event.h
> > > @@ -112,8 +112,8 @@ struct ftrace_event_call {
> > > struct dentry *dir;
> > > struct trace_event *event;
> > > int enabled;
> > > - int (*regfunc)(void);
> > > - void (*unregfunc)(void);
> > > + int (*regfunc)(void *);
> > > + void (*unregfunc)(void *);
> > > int id;
> > > int (*raw_init)(void);
> > > int (*show_format)(struct trace_seq *s);
> > > @@ -122,6 +122,7 @@ struct ftrace_event_call {
> > > int filter_active;
> > > struct event_filter *filter;
> > > void *mod;
> > > + void *data;
> > >
> > > atomic_t profile_count;
> > > int (*profile_enable)(struct ftrace_event_call *);
> > > diff --git a/include/trace/ftrace.h b/include/trace/ftrace.h
> > > index 80e5f6c..a0de384 100644
> > > --- a/include/trace/ftrace.h
> > > +++ b/include/trace/ftrace.h
> > > @@ -568,7 +568,7 @@ static void ftrace_raw_event_##call(proto) \
> > > trace_nowake_buffer_unlock_commit(event, irq_flags, pc); \
> > > } \
> > > \
> > > -static int ftrace_raw_reg_event_##call(void) \
> > > +static int ftrace_raw_reg_event_##call(void *ptr) \
> >
> >
> > Shouldn't it have a __used attribute here, or something?
>
> Do function parameters need that? There's lots of places where the
> parameter of a function is not used by a function itself.
>
> -- Steve

No actually, I thought gcc would warn, but it didn't :-)