diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2012-05-05 11:05:47 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2012-05-08 08:08:46 -0400 |
commit | 66bb4cda55477efeb1be5c2cbd3785a69b088a8a (patch) | |
tree | 05610b579bfbfe475ce23dfb7643305c2fd25385 /arch/sparc | |
parent | c4e26890ff4cb4e85969b1e8565af4b046ce03b8 (diff) |
sparc: Use common threadinfo allocator
Exaclty the same as the core code.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: David S. Miller <davem@davemloft.net>
Link: http://lkml.kernel.org/r/20120505150142.252861878@linutronix.de
Diffstat (limited to 'arch/sparc')
-rw-r--r-- | arch/sparc/include/asm/thread_info_64.h | 25 |
1 files changed, 2 insertions, 23 deletions
diff --git a/arch/sparc/include/asm/thread_info_64.h b/arch/sparc/include/asm/thread_info_64.h index 01d057fe6a3f..7f0981b09451 100644 --- a/arch/sparc/include/asm/thread_info_64.h +++ b/arch/sparc/include/asm/thread_info_64.h | |||
@@ -138,32 +138,11 @@ register struct thread_info *current_thread_info_reg asm("g6"); | |||
138 | 138 | ||
139 | /* thread information allocation */ | 139 | /* thread information allocation */ |
140 | #if PAGE_SHIFT == 13 | 140 | #if PAGE_SHIFT == 13 |
141 | #define __THREAD_INFO_ORDER 1 | 141 | #define THREAD_SIZE_ORDER 1 |
142 | #else /* PAGE_SHIFT == 13 */ | 142 | #else /* PAGE_SHIFT == 13 */ |
143 | #define __THREAD_INFO_ORDER 0 | 143 | #define THREAD_SIZE_ORDER 0 |
144 | #endif /* PAGE_SHIFT == 13 */ | 144 | #endif /* PAGE_SHIFT == 13 */ |
145 | 145 | ||
146 | #define __HAVE_ARCH_THREAD_INFO_ALLOCATOR | ||
147 | |||
148 | #ifdef CONFIG_DEBUG_STACK_USAGE | ||
149 | #define THREAD_FLAGS (GFP_KERNEL | __GFP_ZERO) | ||
150 | #else | ||
151 | #define THREAD_FLAGS (GFP_KERNEL) | ||
152 | #endif | ||
153 | |||
154 | #define alloc_thread_info_node(tsk, node) \ | ||
155 | ({ \ | ||
156 | struct page *page = alloc_pages_node(node, THREAD_FLAGS, \ | ||
157 | __THREAD_INFO_ORDER); \ | ||
158 | struct thread_info *ret; \ | ||
159 | \ | ||
160 | ret = page ? page_address(page) : NULL; \ | ||
161 | ret; \ | ||
162 | }) | ||
163 | |||
164 | #define free_thread_info(ti) \ | ||
165 | free_pages((unsigned long)(ti),__THREAD_INFO_ORDER) | ||
166 | |||
167 | #define __thread_flag_byte_ptr(ti) \ | 146 | #define __thread_flag_byte_ptr(ti) \ |
168 | ((unsigned char *)(&((ti)->flags))) | 147 | ((unsigned char *)(&((ti)->flags))) |
169 | #define __cur_thread_flag_byte_ptr __thread_flag_byte_ptr(current_thread_info()) | 148 | #define __cur_thread_flag_byte_ptr __thread_flag_byte_ptr(current_thread_info()) |