Commit f5e10287 authored by Thomas Gleixner's avatar Thomas Gleixner

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: default avatarThomas 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
parent 66bb4cda
...@@ -152,6 +152,14 @@ config GENERIC_SMP_IDLE_THREAD ...@@ -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
......
...@@ -35,6 +35,8 @@ config IA64 ...@@ -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
......
...@@ -54,8 +54,6 @@ struct thread_info { ...@@ -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 { ...@@ -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, \
......
...@@ -36,6 +36,7 @@ config SPARC32 ...@@ -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
......
...@@ -80,8 +80,6 @@ register struct thread_info *current_thread_info_reg asm("g6"); ...@@ -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)
......
...@@ -111,7 +111,7 @@ int nr_processes(void) ...@@ -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) ...@@ -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) { } ...@@ -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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment