diff options
author | Steve French <sfrench@us.ibm.com> | 2008-04-25 16:20:10 -0400 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2008-04-25 16:20:10 -0400 |
commit | 404e86e1550cc2c84bb57a372af784585c732f9a (patch) | |
tree | c0e8e2d61c1b1c79705c0dc9f0f16e35267286e4 /arch/powerpc/kernel/process.c | |
parent | 0206e61b467fde4d7b50f1a64355182a4fd9576b (diff) | |
parent | b9fa38f75ea7e1f64bc29653ca9758303ce698e4 (diff) |
Merge branch 'master' of /pub/scm/linux/kernel/git/torvalds/linux-2.6
Diffstat (limited to 'arch/powerpc/kernel/process.c')
-rw-r--r-- | arch/powerpc/kernel/process.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c index 703100d5e458..6caad17ea72e 100644 --- a/arch/powerpc/kernel/process.c +++ b/arch/powerpc/kernel/process.c | |||
@@ -1033,3 +1033,34 @@ void ppc64_runlatch_off(void) | |||
1033 | } | 1033 | } |
1034 | } | 1034 | } |
1035 | #endif | 1035 | #endif |
1036 | |||
1037 | #if THREAD_SHIFT < PAGE_SHIFT | ||
1038 | |||
1039 | static struct kmem_cache *thread_info_cache; | ||
1040 | |||
1041 | struct thread_info *alloc_thread_info(struct task_struct *tsk) | ||
1042 | { | ||
1043 | struct thread_info *ti; | ||
1044 | |||
1045 | ti = kmem_cache_alloc(thread_info_cache, GFP_KERNEL); | ||
1046 | if (unlikely(ti == NULL)) | ||
1047 | return NULL; | ||
1048 | #ifdef CONFIG_DEBUG_STACK_USAGE | ||
1049 | memset(ti, 0, THREAD_SIZE); | ||
1050 | #endif | ||
1051 | return ti; | ||
1052 | } | ||
1053 | |||
1054 | void free_thread_info(struct thread_info *ti) | ||
1055 | { | ||
1056 | kmem_cache_free(thread_info_cache, ti); | ||
1057 | } | ||
1058 | |||
1059 | void thread_info_cache_init(void) | ||
1060 | { | ||
1061 | thread_info_cache = kmem_cache_create("thread_info", THREAD_SIZE, | ||
1062 | THREAD_SIZE, 0, NULL); | ||
1063 | BUG_ON(thread_info_cache == NULL); | ||
1064 | } | ||
1065 | |||
1066 | #endif /* THREAD_SHIFT < PAGE_SHIFT */ | ||