lkml.org 
[lkml]   [2009]   [Apr]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 12/15] powerpc: Use macros for .data.page_aligned section.
    Date
    .data.page_aligned should not need a separate output section, so as
    part of this cleanup I moved into the .data output section in the
    linker scripts in order to eliminate unnecessary references to the
    section name.

    Note that this change moves the page-aligned data inside _edata.
    Since it _is_ data, I suspect having page-aligned data outside _edata
    was a bug. Please comment if it is not.

    Signed-off-by: Tim Abbott <tabbott@mit.edu>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: linuxppc-dev@ozlabs.org
    ---
    arch/powerpc/kernel/vdso.c | 2 +-
    arch/powerpc/kernel/vdso32/vdso32_wrapper.S | 3 ++-
    arch/powerpc/kernel/vdso64/vdso64_wrapper.S | 3 ++-
    arch/powerpc/kernel/vmlinux.lds.S | 6 +-----
    4 files changed, 6 insertions(+), 8 deletions(-)

    diff --git a/arch/powerpc/kernel/vdso.c b/arch/powerpc/kernel/vdso.c
    index ad06d5c..841910a 100644
    --- a/arch/powerpc/kernel/vdso.c
    +++ b/arch/powerpc/kernel/vdso.c
    @@ -74,7 +74,7 @@ static int vdso_ready;
    static union {
    struct vdso_data data;
    u8 page[PAGE_SIZE];
    -} vdso_data_store __attribute__((__section__(".data.page_aligned")));
    +} vdso_data_store __page_aligned_data
    struct vdso_data *vdso_data = &vdso_data_store.data;

    /* Format of the patch table */
    diff --git a/arch/powerpc/kernel/vdso32/vdso32_wrapper.S b/arch/powerpc/kernel/vdso32/vdso32_wrapper.S
    index 556f0ca..6e8f507 100644
    --- a/arch/powerpc/kernel/vdso32/vdso32_wrapper.S
    +++ b/arch/powerpc/kernel/vdso32/vdso32_wrapper.S
    @@ -1,7 +1,8 @@
    #include <linux/init.h>
    +#include <linux/linkage.h>
    #include <asm/page.h>

    - .section ".data.page_aligned"
    + __PAGE_ALIGNED_DATA

    .globl vdso32_start, vdso32_end
    .balign PAGE_SIZE
    diff --git a/arch/powerpc/kernel/vdso64/vdso64_wrapper.S b/arch/powerpc/kernel/vdso64/vdso64_wrapper.S
    index 0529cb9..b8553d6 100644
    --- a/arch/powerpc/kernel/vdso64/vdso64_wrapper.S
    +++ b/arch/powerpc/kernel/vdso64/vdso64_wrapper.S
    @@ -1,7 +1,8 @@
    #include <linux/init.h>
    +#include <linux/linkage.h>
    #include <asm/page.h>

    - .section ".data.page_aligned"
    + __PAGE_ALIGNED_DATA

    .globl vdso64_start, vdso64_end
    .balign PAGE_SIZE
    diff --git a/arch/powerpc/kernel/vmlinux.lds.S b/arch/powerpc/kernel/vmlinux.lds.S
    index 47899b0..d3dcea0 100644
    --- a/arch/powerpc/kernel/vmlinux.lds.S
    +++ b/arch/powerpc/kernel/vmlinux.lds.S
    @@ -221,6 +221,7 @@ SECTIONS
    _sdata = .;

    .data : AT(ADDR(.data) - LOAD_OFFSET) {
    + PAGE_ALIGNED_DATA
    DATA_DATA
    #ifdef CONFIG_PPC32
    *(.sdata)
    @@ -258,11 +259,6 @@ SECTIONS
    *(.data.init_task)
    }

    - . = ALIGN(PAGE_SIZE);
    - .data.page_aligned : AT(ADDR(.data.page_aligned) - LOAD_OFFSET) {
    - *(.data.page_aligned)
    - }
    -
    .data.cacheline_aligned : AT(ADDR(.data.cacheline_aligned) - LOAD_OFFSET) {
    *(.data.cacheline_aligned)
    }
    --
    1.6.2.1


    \
     
     \ /
      Last update: 2009-04-28 19:11    [W:0.024 / U:0.020 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site