-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
yaml --- r: 181058 b: refs/heads/master c: cbf6b1b h: refs/heads/master v: v3
- Loading branch information
Paul Mundt
committed
Jan 12, 2010
1 parent
cd2bd71
commit cc01a44
Showing
5 changed files
with
52 additions
and
36 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,2 @@ | ||
--- | ||
refs/heads/master: 70e068eef97d05c97c3512f82352f39fdadfa8cb | ||
refs/heads/master: cbf6b1ba7ae12b3f7cb6b0d060b88d44649f9eda |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
#include <linux/mm.h> | ||
#include <linux/kernel.h> | ||
#include <linux/sched.h> | ||
|
||
#if THREAD_SHIFT < PAGE_SHIFT | ||
static struct kmem_cache *thread_info_cache; | ||
|
||
struct thread_info *alloc_thread_info(struct task_struct *tsk) | ||
{ | ||
struct thread_info *ti; | ||
|
||
ti = kmem_cache_alloc(thread_info_cache, GFP_KERNEL); | ||
if (unlikely(ti == NULL)) | ||
return NULL; | ||
#ifdef CONFIG_DEBUG_STACK_USAGE | ||
memset(ti, 0, THREAD_SIZE); | ||
#endif | ||
return ti; | ||
} | ||
|
||
void free_thread_info(struct thread_info *ti) | ||
{ | ||
kmem_cache_free(thread_info_cache, ti); | ||
} | ||
|
||
void thread_info_cache_init(void) | ||
{ | ||
thread_info_cache = kmem_cache_create("thread_info", THREAD_SIZE, | ||
THREAD_SIZE, 0, NULL); | ||
BUG_ON(thread_info_cache == NULL); | ||
} | ||
#else | ||
struct thread_info *alloc_thread_info(struct task_struct *tsk) | ||
{ | ||
#ifdef CONFIG_DEBUG_STACK_USAGE | ||
gfp_t mask = GFP_KERNEL | __GFP_ZERO; | ||
#else | ||
gfp_t mask = GFP_KERNEL; | ||
#endif | ||
return (struct thread_info *)__get_free_pages(mask, THREAD_SIZE_ORDER); | ||
} | ||
|
||
void free_thread_info(struct thread_info *ti) | ||
{ | ||
free_pages((unsigned long)ti, THREAD_SIZE_ORDER); | ||
} | ||
#endif /* THREAD_SHIFT < PAGE_SHIFT */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters