----- Original Message -----
 
 
 Hi Dave,
 
 
 
 I have been looking at the trace extension that you deliver together with
 crash. In the kernel I look at the trace_array is defined as:
 
 
 
 struct trace_array {
 
 struct list_head list;
 
 char *name;
 
 struct trace_buffer trace_buffer;
 
 #ifdef CONFIG_TRACER_MAX_TRACE
 
 /*
 
 */
 
 struct trace_buffer max_buffer;
 
 bool allocated_snapshot;
 
 #endif
 
 ....
 
 
 
 However trace.c assumes that if the trace_buffer field exists then the
 max_buffer field also exists, which is not true. So if
 CONFIG_TRACER_MAX_TRACE is not defined in the kernel then the trace
 extension will fail when it is loaded with a message that the max_buffer
 field does not exist.
 
 To fix this then the statements:
 
 init_offset(trace_array, max_buffer);
 
 in the function init_offsets and
 
 ftrace_int_max_tr_trace();
 
 in function ftrace_init should not be executed if the max_buffer field is not
 present. I have tested this and it works for me.
 
 Jan 
Not knowing anything about this module, but looking at the code, I guess I don't
understand how/why ftrace_int_max_tr_trace() can be totally avoided?
But in any case, the trace.c extension module is maintained by Qiao Nuohan, so 
I've cc'd him.
Qiao, can you fix this issue and post a patch?
Thanks,
  Dave