Messages in this thread | | | Subject | Re: [PATCH] Fix tracing infrastructure to support multiple includes when defining CREATE_TRACE_POINTS | From | Steven Rostedt <> | Date | Tue, 22 Dec 2009 13:03:59 -0500 |
| |
On Wed, 2009-12-16 at 11:04 -0500, Neil Horman wrote:
> +#if !defined(_TRACE_NAPI_H_) || defined(TRACE_HEADER_MULTI_READ) > #define _TRACE_NAPI_H_ >
Ug, I'm still getting panics because of this. I found out that it's because napi->dev can be NULL.
Here's what I did to solve it:
> #include <linux/netdevice.h> > #include <linux/tracepoint.h> > +#include <linux/ftrace.h> > +
#define NO_DEV "(no device)"
> +TRACE_EVENT(napi_poll, > > -DECLARE_TRACE(napi_poll, > TP_PROTO(struct napi_struct *napi), > - TP_ARGS(napi)); > + > + TP_ARGS(napi), > + > + TP_STRUCT__entry( > + __field( struct napi_struct *, napi) > + __string( dev_name, napi->dev->name)
__string( dev_name, napi->dev ? napi->dev->name, NO_DEV )
> + ), > + > + TP_fast_assign( > + __entry->napi = napi; > + __assign_str(dev_name, napi->dev->name);
__assign_str(dev_name, napi->dev ? napi->dev->name, NO_DEV);
> + ), > + > + TP_printk("napi poll on napi struct %p for device %s", > + __entry->napi, __get_str(dev_name)) > +);
#undef NO_DEV
-- Steve
> > #endif > + > +#include <trace/define_trace.h>
| |