瀏覽代碼

[POWERPC] Add __read_mostly support for powerpc

Signed-off-by: Tony Breeds <tony@bakeyournoodle.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Tony Breeds 18 年之前
父節點
當前提交
bd67fcf9ba
共有 2 個文件被更改,包括 10 次插入0 次删除
  1. 6 0
      arch/powerpc/kernel/vmlinux.lds.S
  2. 4 0
      include/asm-powerpc/cache.h

+ 6 - 0
arch/powerpc/kernel/vmlinux.lds.S

@@ -7,6 +7,7 @@
 #define PROVIDE32(x)	PROVIDE(x)
 #define PROVIDE32(x)	PROVIDE(x)
 #endif
 #endif
 #include <asm-generic/vmlinux.lds.h>
 #include <asm-generic/vmlinux.lds.h>
+#include <asm/cache.h>
 
 
 ENTRY(_stext)
 ENTRY(_stext)
 
 
@@ -211,6 +212,11 @@ SECTIONS
 		*(.data.cacheline_aligned)
 		*(.data.cacheline_aligned)
 	}
 	}
 
 
+	. = ALIGN(L1_CACHE_BYTES);
+	.data.read_mostly : {
+		*(.data.read_mostly)
+	}
+
 	. = ALIGN(PAGE_SIZE);
 	. = ALIGN(PAGE_SIZE);
 	__data_nosave : {
 	__data_nosave : {
 		__nosave_begin = .;
 		__nosave_begin = .;

+ 4 - 0
include/asm-powerpc/cache.h

@@ -34,5 +34,9 @@ struct ppc64_caches {
 extern struct ppc64_caches ppc64_caches;
 extern struct ppc64_caches ppc64_caches;
 #endif /* __powerpc64__ && ! __ASSEMBLY__ */
 #endif /* __powerpc64__ && ! __ASSEMBLY__ */
 
 
+#if !defined(__ASSEMBLY__)
+#define __read_mostly __attribute__((__section__(".data.read_mostly")))
+#endif
+
 #endif /* __KERNEL__ */
 #endif /* __KERNEL__ */
 #endif /* _ASM_POWERPC_CACHE_H */
 #endif /* _ASM_POWERPC_CACHE_H */