瀏覽代碼

task_allocator: Use config switches instead of magic defines

Replace __HAVE_ARCH_TASK_ALLOCATOR and __HAVE_ARCH_THREAD_ALLOCATOR
with proper config switches.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Sam Ravnborg <sam@ravnborg.org>
Cc: Tony Luck <tony.luck@intel.com>
Link: http://lkml.kernel.org/r/20120505150142.371309416@linutronix.de
Thomas Gleixner 13 年之前
父節點
當前提交
f5e1028736
共有 6 個文件被更改,包括 14 次插入9 次删除
  1. 8 0
      arch/Kconfig
  2. 2 0
      arch/ia64/Kconfig
  3. 0 3
      arch/ia64/include/asm/thread_info.h
  4. 1 0
      arch/sparc/Kconfig
  5. 0 2
      arch/sparc/include/asm/thread_info_32.h
  6. 3 4
      kernel/fork.c

+ 8 - 0
arch/Kconfig

@@ -152,6 +152,14 @@ config GENERIC_SMP_IDLE_THREAD
 config ARCH_INIT_TASK
 config ARCH_INIT_TASK
        bool
        bool
 
 
+# Select if arch has its private alloc_task_struct() function
+config ARCH_TASK_STRUCT_ALLOCATOR
+	bool
+
+# Select if arch has its private alloc_thread_info() function
+config ARCH_THREAD_INFO_ALLOCATOR
+	bool
+
 config HAVE_REGS_AND_STACK_ACCESS_API
 config HAVE_REGS_AND_STACK_ACCESS_API
 	bool
 	bool
 	help
 	help

+ 2 - 0
arch/ia64/Kconfig

@@ -35,6 +35,8 @@ config IA64
 	select GENERIC_IOMAP
 	select GENERIC_IOMAP
 	select GENERIC_SMP_IDLE_THREAD
 	select GENERIC_SMP_IDLE_THREAD
 	select ARCH_INIT_TASK
 	select ARCH_INIT_TASK
+	select ARCH_TASK_STRUCT_ALLOCATOR
+	select ARCH_THREAD_INFO_ALLOCATOR
 	default y
 	default y
 	help
 	help
 	  The Itanium Processor Family is Intel's 64-bit successor to
 	  The Itanium Processor Family is Intel's 64-bit successor to

+ 0 - 3
arch/ia64/include/asm/thread_info.h

@@ -54,8 +54,6 @@ struct thread_info {
 	},					\
 	},					\
 }
 }
 
 
-#define __HAVE_ARCH_THREAD_INFO_ALLOCATOR
-
 #ifndef ASM_OFFSETS_C
 #ifndef ASM_OFFSETS_C
 /* how to get the thread information struct from C */
 /* how to get the thread information struct from C */
 #define current_thread_info()	((struct thread_info *) ((char *) current + IA64_TASK_SIZE))
 #define current_thread_info()	((struct thread_info *) ((char *) current + IA64_TASK_SIZE))
@@ -84,7 +82,6 @@ struct thread_info {
 #endif
 #endif
 #define end_of_stack(p) (unsigned long *)((void *)(p) + IA64_RBS_OFFSET)
 #define end_of_stack(p) (unsigned long *)((void *)(p) + IA64_RBS_OFFSET)
 
 
-#define __HAVE_ARCH_TASK_STRUCT_ALLOCATOR
 #define alloc_task_struct_node(node)						\
 #define alloc_task_struct_node(node)						\
 ({										\
 ({										\
 	struct page *page = alloc_pages_node(node, GFP_KERNEL | __GFP_COMP,	\
 	struct page *page = alloc_pages_node(node, GFP_KERNEL | __GFP_COMP,	\

+ 1 - 0
arch/sparc/Kconfig

@@ -36,6 +36,7 @@ config SPARC32
 	def_bool !64BIT
 	def_bool !64BIT
 	select GENERIC_ATOMIC64
 	select GENERIC_ATOMIC64
 	select CLZ_TAB
 	select CLZ_TAB
+	select ARCH_THREAD_INFO_ALLOCATOR
 
 
 config SPARC64
 config SPARC64
 	def_bool 64BIT
 	def_bool 64BIT

+ 0 - 2
arch/sparc/include/asm/thread_info_32.h

@@ -80,8 +80,6 @@ register struct thread_info *current_thread_info_reg asm("g6");
  */
  */
 #define THREAD_INFO_ORDER  1
 #define THREAD_INFO_ORDER  1
 
 
-#define __HAVE_ARCH_THREAD_INFO_ALLOCATOR
-
 BTFIXUPDEF_CALL(struct thread_info *, alloc_thread_info_node, int)
 BTFIXUPDEF_CALL(struct thread_info *, alloc_thread_info_node, int)
 #define alloc_thread_info_node(tsk, node) BTFIXUP_CALL(alloc_thread_info_node)(node)
 #define alloc_thread_info_node(tsk, node) BTFIXUP_CALL(alloc_thread_info_node)(node)
 
 

+ 3 - 4
kernel/fork.c

@@ -111,7 +111,7 @@ int nr_processes(void)
 	return total;
 	return total;
 }
 }
 
 
-#ifndef __HAVE_ARCH_TASK_STRUCT_ALLOCATOR
+#ifndef CONFIG_ARCH_TASK_STRUCT_ALLOCATOR
 static struct kmem_cache *task_struct_cachep;
 static struct kmem_cache *task_struct_cachep;
 
 
 static inline struct task_struct *alloc_task_struct_node(int node)
 static inline struct task_struct *alloc_task_struct_node(int node)
@@ -128,8 +128,7 @@ static inline void free_task_struct(struct task_struct *tsk)
 }
 }
 #endif
 #endif
 
 
-#ifndef __HAVE_ARCH_THREAD_INFO_ALLOCATOR
-
+#ifndef CONFIG_ARCH_THREAD_INFO_ALLOCATOR
 void __weak arch_release_thread_info(struct thread_info *ti) { }
 void __weak arch_release_thread_info(struct thread_info *ti) { }
 
 
 /*
 /*
@@ -243,7 +242,7 @@ void __init __weak arch_task_cache_init(void) { }
 
 
 void __init fork_init(unsigned long mempages)
 void __init fork_init(unsigned long mempages)
 {
 {
-#ifndef __HAVE_ARCH_TASK_STRUCT_ALLOCATOR
+#ifndef CONFIG_ARCH_TASK_STRUCT_ALLOCATOR
 #ifndef ARCH_MIN_TASKALIGN
 #ifndef ARCH_MIN_TASKALIGN
 #define ARCH_MIN_TASKALIGN	L1_CACHE_BYTES
 #define ARCH_MIN_TASKALIGN	L1_CACHE_BYTES
 #endif
 #endif