Rabin,
 This looks fine to me -- Qiao, can you please ACK this patch?
 Thanks,
    Dave
 ----- Original Message -----
> max_buffer is optional in the kernel (depends on the
> CONFIG_TRACE_MAX_TRACE option).  Don't fail if it isn't available. 
> ---
>   extensions/trace.c |   14 +++++++++++++-
>   1 file changed, 13 insertions(+), 1 deletion(-)
>
> diff --git a/extensions/trace.c b/extensions/trace.c
> index 9f81568..c269f4c 100644
> --- a/extensions/trace.c
> +++ b/extensions/trace.c
> @@ -34,6 +34,10 @@ static int encapsulated_current_trace;
>    * trace_buffer is supported
>    */
>   static int trace_buffer_available;
> +/*
> + * max_buffer is supported
> + */
> +static int max_buffer_available;
>
>   #define koffset(struct, member) struct##_##member##_offset
>
> @@ -163,8 +167,10 @@ static int init_offsets(void)
>
>   	if (trace_buffer_available) {
>   		init_offset(trace_array, trace_buffer);
> -		init_offset(trace_array, max_buffer);
>   		init_offset(trace_buffer, buffer);
> +
> +		if (max_buffer_available)
> +			init_offset(trace_array, max_buffer);
>   	} else {
>   		init_offset(trace_array, buffer);
>   	}
> @@ -448,6 +454,9 @@ out_fail:
>   static int ftrace_int_max_tr_trace(void)
>   {
>   	if (trace_buffer_available) {
> +		if (!max_buffer_available)
> +			return 0;
> +
>   		global_max_buffer = global_trace + koffset(trace_array, max_buffer);
>   		read_value(max_tr_ring_buffer, global_max_buffer, trace_buffer, buffer);
>   	} else {
> @@ -528,6 +537,9 @@ static int ftrace_init(void)
>
>   	if (MEMBER_EXISTS("trace_array", "trace_buffer")) {
>   		trace_buffer_available = 1;
> +
> +		if (MEMBER_EXISTS("trace_array", "max_buffer"))
> +			max_buffer_available = 1;
>   	} else {
>   		sym_max_tr_trace = symbol_search("max_tr");
>   		if (sym_max_tr_trace == NULL)
> --
> 1.7.10.4
>
> --
> Crash-utility mailing list
> Crash-utility(a)redhat.com
> 
https://www.redhat.com/mailman/listinfo/crash-utility
>
 .