diff options
author | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-07 18:40:39 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-07 18:40:39 -0500 |
commit | ea14fad0d416354a4e9bb1a04f32acba706f9548 (patch) | |
tree | 2c8acc5331f189aef1d40ddce3f40d6be9314e77 /arch/arm/kernel/process.c | |
parent | 6ee7e78e7c78d871409ad4df30551c9355be7d0e (diff) | |
parent | 6705cda24fad1cb0ac82ac4f312df8ec735b39b0 (diff) |
Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm
* 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm: (76 commits)
[ARM] 4002/1: S3C24XX: leave parent IRQs unmasked
[ARM] 4001/1: S3C24XX: shorten reboot time
[ARM] 3983/2: remove unused argument to __bug()
[ARM] 4000/1: Osiris: add third serial port in
[ARM] 3999/1: RX3715: suspend to RAM support
[ARM] 3998/1: VR1000: LED platform devices
[ARM] 3995/1: iop13xx: add iop13xx support
[ARM] 3968/1: iop13xx: add iop13xx_defconfig
[ARM] Update mach-types
[ARM] Allow gcc to optimise arm_add_memory a little more
[ARM] 3991/1: i.MX/MX1 high resolution time source
[ARM] 3990/1: i.MX/MX1 more precise PLL decode
[ARM] 3986/1: H1940: suspend to RAM support
[ARM] 3985/1: ixp4xx clocksource cleanup
[ARM] 3984/1: ixp4xx/nslu2: Fix disk LED numbering (take 2)
[ARM] 3994/1: ixp23xx: fix handling of pci master aborts
[ARM] 3981/1: sched_clock for PXA2xx
[ARM] 3980/1: extend the ARM Versatile sched_clock implementation from 32 to 63 bit
[ARM] 3979/1: extend the SA11x0 sched_clock implementation from 32 to 63 bit period
[ARM] 3978/1: macro to provide a 63-bit value from a 32-bit hardware counter
...
Diffstat (limited to 'arch/arm/kernel/process.c')
-rw-r--r-- | arch/arm/kernel/process.c | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c index bf35c178a877..a9e8f7e55fd6 100644 --- a/arch/arm/kernel/process.c +++ b/arch/arm/kernel/process.c | |||
@@ -281,67 +281,6 @@ void show_fpregs(struct user_fp *regs) | |||
281 | } | 281 | } |
282 | 282 | ||
283 | /* | 283 | /* |
284 | * Task structure and kernel stack allocation. | ||
285 | */ | ||
286 | struct thread_info_list { | ||
287 | unsigned long *head; | ||
288 | unsigned int nr; | ||
289 | }; | ||
290 | |||
291 | static DEFINE_PER_CPU(struct thread_info_list, thread_info_list) = { NULL, 0 }; | ||
292 | |||
293 | #define EXTRA_TASK_STRUCT 4 | ||
294 | |||
295 | struct thread_info *alloc_thread_info(struct task_struct *task) | ||
296 | { | ||
297 | struct thread_info *thread = NULL; | ||
298 | |||
299 | if (EXTRA_TASK_STRUCT) { | ||
300 | struct thread_info_list *th = &get_cpu_var(thread_info_list); | ||
301 | unsigned long *p = th->head; | ||
302 | |||
303 | if (p) { | ||
304 | th->head = (unsigned long *)p[0]; | ||
305 | th->nr -= 1; | ||
306 | } | ||
307 | put_cpu_var(thread_info_list); | ||
308 | |||
309 | thread = (struct thread_info *)p; | ||
310 | } | ||
311 | |||
312 | if (!thread) | ||
313 | thread = (struct thread_info *) | ||
314 | __get_free_pages(GFP_KERNEL, THREAD_SIZE_ORDER); | ||
315 | |||
316 | #ifdef CONFIG_DEBUG_STACK_USAGE | ||
317 | /* | ||
318 | * The stack must be cleared if you want SYSRQ-T to | ||
319 | * give sensible stack usage information | ||
320 | */ | ||
321 | if (thread) | ||
322 | memzero(thread, THREAD_SIZE); | ||
323 | #endif | ||
324 | return thread; | ||
325 | } | ||
326 | |||
327 | void free_thread_info(struct thread_info *thread) | ||
328 | { | ||
329 | if (EXTRA_TASK_STRUCT) { | ||
330 | struct thread_info_list *th = &get_cpu_var(thread_info_list); | ||
331 | if (th->nr < EXTRA_TASK_STRUCT) { | ||
332 | unsigned long *p = (unsigned long *)thread; | ||
333 | p[0] = (unsigned long)th->head; | ||
334 | th->head = p; | ||
335 | th->nr += 1; | ||
336 | put_cpu_var(thread_info_list); | ||
337 | return; | ||
338 | } | ||
339 | put_cpu_var(thread_info_list); | ||
340 | } | ||
341 | free_pages((unsigned long)thread, THREAD_SIZE_ORDER); | ||
342 | } | ||
343 | |||
344 | /* | ||
345 | * Free current thread data structures etc.. | 284 | * Free current thread data structures etc.. |
346 | */ | 285 | */ |
347 | void exit_thread(void) | 286 | void exit_thread(void) |