summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTony Breeds <tony@bakeyournoodle.com>2007-07-04 06:04:31 +0200
committerPaul Mackerras <paulus@samba.org>2007-07-10 14:00:56 +0200
commitbd67fcf9ba8474e8eef649a79aba5b3479b01272 (patch)
tree589b6fb18c6c41c60863bb92ec85506b09e4d441
parent[POWERPC] Modify sched_clock() to make CONFIG_PRINTK_TIME more sane (diff)
downloadlinux-bd67fcf9ba8474e8eef649a79aba5b3479b01272.tar.xz
linux-bd67fcf9ba8474e8eef649a79aba5b3479b01272.zip
[POWERPC] Add __read_mostly support for powerpc
Signed-off-by: Tony Breeds <tony@bakeyournoodle.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
-rw-r--r--arch/powerpc/kernel/vmlinux.lds.S6
-rw-r--r--include/asm-powerpc/cache.h4
2 files changed, 10 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/vmlinux.lds.S b/arch/powerpc/kernel/vmlinux.lds.S
index 21c39ff2dc39..ae4acd84143d 100644
--- a/arch/powerpc/kernel/vmlinux.lds.S
+++ b/arch/powerpc/kernel/vmlinux.lds.S
@@ -7,6 +7,7 @@
#define PROVIDE32(x) PROVIDE(x)
#endif
#include <asm-generic/vmlinux.lds.h>
+#include <asm/cache.h>
ENTRY(_stext)
@@ -211,6 +212,11 @@ SECTIONS
*(.data.cacheline_aligned)
}
+ . = ALIGN(L1_CACHE_BYTES);
+ .data.read_mostly : {
+ *(.data.read_mostly)
+ }
+
. = ALIGN(PAGE_SIZE);
__data_nosave : {
__nosave_begin = .;
diff --git a/include/asm-powerpc/cache.h b/include/asm-powerpc/cache.h
index 642be62cf393..53507046a1b1 100644
--- a/include/asm-powerpc/cache.h
+++ b/include/asm-powerpc/cache.h
@@ -34,5 +34,9 @@ struct ppc64_caches {
extern struct ppc64_caches ppc64_caches;
#endif /* __powerpc64__ && ! __ASSEMBLY__ */
+#if !defined(__ASSEMBLY__)
+#define __read_mostly __attribute__((__section__(".data.read_mostly")))
+#endif
+
#endif /* __KERNEL__ */
#endif /* _ASM_POWERPC_CACHE_H */