소스 검색

mm: move cache_line_size() to <linux/cache.h>

Not all architectures define cache_line_size() so as suggested by Andrew move
the private implementations in mm/slab.c and mm/slob.c to <linux/cache.h>.

Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Reviewed-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Pekka Enberg 17 년 전
부모
커밋
1b27d05b6e
4개의 변경된 파일7개의 추가작업 그리고 9개의 파일을 삭제
  1. 3 0
      arch/x86/Kconfig
  2. 4 0
      include/linux/cache.h
  3. 0 4
      mm/slab.c
  4. 0 5
      mm/slub.c

+ 3 - 0
arch/x86/Kconfig

@@ -114,6 +114,9 @@ config GENERIC_TIME_VSYSCALL
 config ARCH_HAS_CPU_RELAX
 config ARCH_HAS_CPU_RELAX
 	def_bool y
 	def_bool y
 
 
+config ARCH_HAS_CACHE_LINE_SIZE
+	def_bool y
+
 config HAVE_SETUP_PER_CPU_AREA
 config HAVE_SETUP_PER_CPU_AREA
 	def_bool X86_64 || (X86_SMP && !X86_VOYAGER)
 	def_bool X86_64 || (X86_SMP && !X86_VOYAGER)
 
 

+ 4 - 0
include/linux/cache.h

@@ -60,4 +60,8 @@
 #endif
 #endif
 #endif
 #endif
 
 
+#ifndef CONFIG_ARCH_HAS_CACHE_LINE_SIZE
+#define cache_line_size()	L1_CACHE_BYTES
+#endif
+
 #endif /* __LINUX_CACHE_H */
 #endif /* __LINUX_CACHE_H */

+ 0 - 4
mm/slab.c

@@ -139,10 +139,6 @@
 #define	BYTES_PER_WORD		sizeof(void *)
 #define	BYTES_PER_WORD		sizeof(void *)
 #define	REDZONE_ALIGN		max(BYTES_PER_WORD, __alignof__(unsigned long long))
 #define	REDZONE_ALIGN		max(BYTES_PER_WORD, __alignof__(unsigned long long))
 
 
-#ifndef cache_line_size
-#define cache_line_size()	L1_CACHE_BYTES
-#endif
-
 #ifndef ARCH_KMALLOC_MINALIGN
 #ifndef ARCH_KMALLOC_MINALIGN
 /*
 /*
  * Enforce a minimum alignment for the kmalloc caches.
  * Enforce a minimum alignment for the kmalloc caches.

+ 0 - 5
mm/slub.c

@@ -207,11 +207,6 @@ static inline void ClearSlabDebug(struct page *page)
 #define __KMALLOC_CACHE		0x20000000 /* objects freed using kfree */
 #define __KMALLOC_CACHE		0x20000000 /* objects freed using kfree */
 #define __PAGE_ALLOC_FALLBACK	0x10000000 /* Allow fallback to page alloc */
 #define __PAGE_ALLOC_FALLBACK	0x10000000 /* Allow fallback to page alloc */
 
 
-/* Not all arches define cache_line_size */
-#ifndef cache_line_size
-#define cache_line_size()	L1_CACHE_BYTES
-#endif
-
 static int kmem_size = sizeof(struct kmem_cache);
 static int kmem_size = sizeof(struct kmem_cache);
 
 
 #ifdef CONFIG_SMP
 #ifdef CONFIG_SMP