aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2009-02-23 21:57:21 -0500
committerTejun Heo <tj@kernel.org>2009-02-23 21:57:21 -0500
commit458a3e644c3327be529393982e24277eda8f1ac7 (patch)
treef39bab1d54eeb222565c8d9086f2e4f645d97f58 /arch/x86/kernel
parentc0c0a29379b5848aec2e8f1c58d853d3cb7118b8 (diff)
x86: update populate_extra_pte() and add populate_extra_pmd()
Impact: minor change to populate_extra_pte() and addition of pmd flavor Update populate_extra_pte() to return pointer to the pte_t for the specified address and add populate_extra_pmd() which only populates till the pmd and returns pointer to the pmd entry for the address. For 64bit, pud/pmd/pte fill functions are separated out from set_pte_vaddr[_pud]() and used for set_pte_vaddr[_pud]() and populate_extra_{pte|pmd}(). Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'arch/x86/kernel')
-rw-r--r--arch/x86/kernel/setup_percpu.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/x86/kernel/setup_percpu.c b/arch/x86/kernel/setup_percpu.c
index 2dce43558217..671e6528a82d 100644
--- a/arch/x86/kernel/setup_percpu.c
+++ b/arch/x86/kernel/setup_percpu.c
@@ -41,6 +41,11 @@ unsigned long __per_cpu_offset[NR_CPUS] __read_mostly = {
41}; 41};
42EXPORT_SYMBOL(__per_cpu_offset); 42EXPORT_SYMBOL(__per_cpu_offset);
43 43
44static void __init pcpu4k_populate_pte(unsigned long addr)
45{
46 populate_extra_pte(addr);
47}
48
44static inline void setup_percpu_segment(int cpu) 49static inline void setup_percpu_segment(int cpu)
45{ 50{
46#ifdef CONFIG_X86_32 51#ifdef CONFIG_X86_32
@@ -104,7 +109,7 @@ void __init setup_per_cpu_areas(void)
104 } 109 }
105 } 110 }
106 111
107 pcpu_unit_size = pcpu_setup_static(populate_extra_pte, pages, size); 112 pcpu_unit_size = pcpu_setup_static(pcpu4k_populate_pte, pages, size);
108 113
109 free_bootmem(__pa(pages), pages_size); 114 free_bootmem(__pa(pages), pages_size);
110 115