OSDN Git Service

alpha: use L1_CACHE_BYTES for cacheline size in the linker script
authorTejun Heo <tj@kernel.org>
Tue, 25 Jan 2011 13:27:38 +0000 (14:27 +0100)
committerTejun Heo <tj@kernel.org>
Tue, 25 Jan 2011 13:27:38 +0000 (14:27 +0100)
Currently the linker script uses 64 for cacheline size which isn't
optimal for all cases.  Include asm/cache.h and use L1_CACHE_BYTES
instead as suggested by Sam Ravnborg.

Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Sam Ravnborg <sam@ravnborg.org>
arch/alpha/kernel/vmlinux.lds.S

index 173518f..433be2a 100644 (file)
@@ -1,5 +1,6 @@
 #include <asm-generic/vmlinux.lds.h>
 #include <asm/thread_info.h>
+#include <asm/cache.h>
 #include <asm/page.h>
 
 OUTPUT_FORMAT("elf64-alpha")
@@ -38,7 +39,7 @@ SECTIONS
        __init_begin = ALIGN(PAGE_SIZE);
        INIT_TEXT_SECTION(PAGE_SIZE)
        INIT_DATA_SECTION(16)
-       PERCPU(64, PAGE_SIZE)
+       PERCPU(L1_CACHE_BYTES, PAGE_SIZE)
        /* Align to THREAD_SIZE rather than PAGE_SIZE here so any padding page
           needed for the THREAD_SIZE aligned init_task gets freed after init */
        . = ALIGN(THREAD_SIZE);
@@ -46,7 +47,7 @@ SECTIONS
        /* Freed after init ends here */
 
        _data = .;
-       RW_DATA_SECTION(64, PAGE_SIZE, THREAD_SIZE)
+       RW_DATA_SECTION(L1_CACHE_BYTES, PAGE_SIZE, THREAD_SIZE)
 
        .got : {
                *(.got)