Subject: Re: linux-next: manual merge of the kmemcheck tree with the tracing tree

From: Steven Rostedt <[email-masked]>
Date: Mon, 01 Jun 2009 10:33:19 -0400

On Mon, 2009-06-01 at 17:55 +1000, Stephen Rothwell wrote:
> Hi all,
> 
> Today's linux-next merge of the kmemcheck tree got a conflict in
> kernel/trace/ring_buffer.c between commit
> aa20ae8444fc6c318272c643f856d8d8ad3e198d ("ring-buffer: move big if
> statement down") from the tracing tree and commits
> 9b7ff384ee76ced9638ab236db588a6f13916336 ("trace: annotate bitfields in
> struct ring_buffer_event") and 3467e18b1cf34c7d316af5717e7053ce845d014e
> ("kmemcheck: make bitfield annotations be valid C") from the kmemcheck
> tree.
> 
> I fixed it up (see below) and can carry the fix as necessary.

I'm not great at reading git conflict diffs.

> -- 
> Cheers,
> Stephen Rothwell                    [email-masked]
> 
> diff --cc kernel/trace/ring_buffer.c
> index 3611706,c22506f..0000000
> --- a/kernel/trace/ring_buffer.c
> +++ b/kernel/trace/ring_buffer.c
> @@@ -1154,156 -1156,132 +1155,157 @@@ static unsigned rb_calculate_event_leng
>   	return length;
>   }

[...]

>  +	/*
>  +	 * The actual tail page has moved forward.
>  +	 */
>  +	if (tail < BUF_PAGE_SIZE) {
>  +		/* Mark the rest of the page with padding */
>  +		event = __rb_page_index(tail_page, tail);
> ++		kmemcheck_annotate_bitfield(event, bitfield);

Is this...

>  +		rb_event_set_padding(event);
>  +	}
>   
>  -		/*
>  -		 * The actual tail page has moved forward.
>  -		 */
>  -		if (tail < BUF_PAGE_SIZE) {
>  -			/* Mark the rest of the page with padding */
>  -			event = __rb_page_index(tail_page, tail);
>  -			kmemcheck_annotate_bitfield(event, bitfield);
>  -			rb_event_set_padding(event);
>  -		}

[...]

>   
> @@@ -1311,12 -1289,9 +1313,13 @@@
>   		return NULL;
>   
>   	event = __rb_page_index(tail_page, tail);
> + 	kmemcheck_annotate_bitfield(event, bitfield);

and this the only changes you needed to fix?

-- Steve

>   	rb_update_event(event, type, length);
>   
>  +	/* The passed in type is zero for DATA */
>  +	if (likely(!type))
>  +		local_inc(&tail_page->entries);
>  +
>   	/*
>   	 * If this is a commit and the tail is zero, then update
>   	 * this page's time stamp.