Subject: Re: [PATCH 5/8] powerpc: use new macro for .data.cacheline_aligned section.

From: Benjamin Herrenschmidt <[email-masked]>
Date: Mon, 18 May 2009 14:23:38 +1000

On Thu, 2009-04-30 at 19:56 -0400, Tim Abbott wrote:
> .data.cacheline_aligned should not need a separate output section;
> this change moves it into the .data section.
> 
> Since there isn't an ALIGN() directive before the
> .data.cacheline_aligned scetion in the current linker script, I'd like
> an ack from one of the powerpc maintainers that L1_CACHE_BYTES is the
> correct alignment here.

Yes, that's the right size.

Also. that looks like a bug to me in the current stuff. I'm queuing your
patch set for .31 but I'll stick a "fix" in .30 for that just in case
which unfortunately means your patches will probably need to be rebased.

Cheers,
Ben.

> Signed-off-by: Tim Abbott <[email-masked]>
> Cc: Benjamin Herrenschmidt <[email-masked]>
> Cc: Paul Mackerras <[email-masked]>
> Cc: [email-masked]
> ---
>  arch/powerpc/kernel/vmlinux.lds.S |    5 +----
>  1 files changed, 1 insertions(+), 4 deletions(-)
> 
> diff --git a/arch/powerpc/kernel/vmlinux.lds.S b/arch/powerpc/kernel/vmlinux.lds.S
> index 4223892..e769717 100644
> --- a/arch/powerpc/kernel/vmlinux.lds.S
> +++ b/arch/powerpc/kernel/vmlinux.lds.S
> @@ -223,6 +223,7 @@ SECTIONS
>  	.data : AT(ADDR(.data) - LOAD_OFFSET) {
>  		PAGE_ALIGNED_DATA
>  		NOSAVE_DATA
> +		CACHELINE_ALIGNED_DATA(L1_CACHE_BYTES)
>  		DATA_DATA
>  #ifdef CONFIG_PPC32
>  		*(.sdata)
> @@ -260,10 +261,6 @@ SECTIONS
>  		*(.data.init_task)
>  	}
>  
> -	.data.cacheline_aligned : AT(ADDR(.data.cacheline_aligned) - LOAD_OFFSET) {
> -		*(.data.cacheline_aligned)
> -	}
> -
>  	. = ALIGN(L1_CACHE_BYTES);
>  	.data.read_mostly : AT(ADDR(.data.read_mostly) - LOAD_OFFSET) {
>  		*(.data.read_mostly)