diff options
author | Tejun Heo <tj@kernel.org> | 2009-02-20 02:29:09 -0500 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2009-02-20 02:29:09 -0500 |
commit | 11124411aa95827404d6bfdfc14c908e1b54513c (patch) | |
tree | e613edf6df9d1130e0ebe853ba1390c8389b25b3 /arch/x86/mm/init_32.c | |
parent | fbf59bc9d74d1fb30b8e0630743aff2806eafcea (diff) |
x86: convert to the new dynamic percpu allocator
Impact: use new dynamic allocator, unified access to static/dynamic
percpu memory
Convert to the new dynamic percpu allocator.
* implement populate_extra_pte() for both 32 and 64
* update setup_per_cpu_areas() to use pcpu_setup_static()
* define __addr_to_pcpu_ptr() and __pcpu_ptr_to_addr()
* define config HAVE_DYNAMIC_PER_CPU_AREA
Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'arch/x86/mm/init_32.c')
-rw-r--r-- | arch/x86/mm/init_32.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c index 00263bf07a88..8b1a0ef7f874 100644 --- a/arch/x86/mm/init_32.c +++ b/arch/x86/mm/init_32.c | |||
@@ -137,6 +137,16 @@ static pte_t * __init one_page_table_init(pmd_t *pmd) | |||
137 | return pte_offset_kernel(pmd, 0); | 137 | return pte_offset_kernel(pmd, 0); |
138 | } | 138 | } |
139 | 139 | ||
140 | void __init populate_extra_pte(unsigned long vaddr) | ||
141 | { | ||
142 | int pgd_idx = pgd_index(vaddr); | ||
143 | int pmd_idx = pmd_index(vaddr); | ||
144 | pmd_t *pmd; | ||
145 | |||
146 | pmd = one_md_table_init(swapper_pg_dir + pgd_idx); | ||
147 | one_page_table_init(pmd + pmd_idx); | ||
148 | } | ||
149 | |||
140 | static pte_t *__init page_table_kmap_check(pte_t *pte, pmd_t *pmd, | 150 | static pte_t *__init page_table_kmap_check(pte_t *pte, pmd_t *pmd, |
141 | unsigned long vaddr, pte_t *lastpte) | 151 | unsigned long vaddr, pte_t *lastpte) |
142 | { | 152 | { |