diff options
author | Tejun Heo <tj@kernel.org> | 2009-08-14 02:00:49 -0400 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2009-08-14 02:00:49 -0400 |
commit | 08fc45806103e59a37418e84719b878f9bb32540 (patch) | |
tree | 8b39b7769fd42457bdb2950ce02d9893f39c0b7d /include/linux/percpu.h | |
parent | 00ae4064b1445524752575dd84df227c0687c99d (diff) |
percpu: build first chunk allocators selectively
There's no need to build unused first chunk allocators in. Define
CONFIG_NEED_PER_CPU_*_FIRST_CHUNK and let archs enable them
selectively.
Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'include/linux/percpu.h')
-rw-r--r-- | include/linux/percpu.h | 27 |
1 files changed, 5 insertions, 22 deletions
diff --git a/include/linux/percpu.h b/include/linux/percpu.h index 7989f61b03f3..e26788e0da4a 100644 --- a/include/linux/percpu.h +++ b/include/linux/percpu.h | |||
@@ -70,17 +70,21 @@ extern size_t __init pcpu_setup_first_chunk( | |||
70 | ssize_t dyn_size, size_t unit_size, | 70 | ssize_t dyn_size, size_t unit_size, |
71 | void *base_addr, const int *unit_map); | 71 | void *base_addr, const int *unit_map); |
72 | 72 | ||
73 | #ifdef CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK | ||
73 | extern ssize_t __init pcpu_embed_first_chunk( | 74 | extern ssize_t __init pcpu_embed_first_chunk( |
74 | size_t static_size, size_t reserved_size, | 75 | size_t static_size, size_t reserved_size, |
75 | ssize_t dyn_size); | 76 | ssize_t dyn_size); |
77 | #endif | ||
76 | 78 | ||
79 | #ifdef CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK | ||
77 | extern ssize_t __init pcpu_page_first_chunk( | 80 | extern ssize_t __init pcpu_page_first_chunk( |
78 | size_t static_size, size_t reserved_size, | 81 | size_t static_size, size_t reserved_size, |
79 | pcpu_fc_alloc_fn_t alloc_fn, | 82 | pcpu_fc_alloc_fn_t alloc_fn, |
80 | pcpu_fc_free_fn_t free_fn, | 83 | pcpu_fc_free_fn_t free_fn, |
81 | pcpu_fc_populate_pte_fn_t populate_pte_fn); | 84 | pcpu_fc_populate_pte_fn_t populate_pte_fn); |
85 | #endif | ||
82 | 86 | ||
83 | #ifdef CONFIG_NEED_MULTIPLE_NODES | 87 | #ifdef CONFIG_NEED_PER_CPU_LPAGE_FIRST_CHUNK |
84 | extern int __init pcpu_lpage_build_unit_map( | 88 | extern int __init pcpu_lpage_build_unit_map( |
85 | size_t static_size, size_t reserved_size, | 89 | size_t static_size, size_t reserved_size, |
86 | ssize_t *dyn_sizep, size_t *unit_sizep, | 90 | ssize_t *dyn_sizep, size_t *unit_sizep, |
@@ -98,27 +102,6 @@ extern ssize_t __init pcpu_lpage_first_chunk( | |||
98 | 102 | ||
99 | extern void *pcpu_lpage_remapped(void *kaddr); | 103 | extern void *pcpu_lpage_remapped(void *kaddr); |
100 | #else | 104 | #else |
101 | static inline int pcpu_lpage_build_unit_map( | ||
102 | size_t static_size, size_t reserved_size, | ||
103 | ssize_t *dyn_sizep, size_t *unit_sizep, | ||
104 | size_t lpage_size, int *unit_map, | ||
105 | pcpu_fc_cpu_distance_fn_t cpu_distance_fn) | ||
106 | { | ||
107 | return -EINVAL; | ||
108 | } | ||
109 | |||
110 | static inline ssize_t __init pcpu_lpage_first_chunk( | ||
111 | size_t static_size, size_t reserved_size, | ||
112 | size_t dyn_size, size_t unit_size, | ||
113 | size_t lpage_size, const int *unit_map, | ||
114 | int nr_units, | ||
115 | pcpu_fc_alloc_fn_t alloc_fn, | ||
116 | pcpu_fc_free_fn_t free_fn, | ||
117 | pcpu_fc_map_fn_t map_fn) | ||
118 | { | ||
119 | return -EINVAL; | ||
120 | } | ||
121 | |||
122 | static inline void *pcpu_lpage_remapped(void *kaddr) | 105 | static inline void *pcpu_lpage_remapped(void *kaddr) |
123 | { | 106 | { |
124 | return NULL; | 107 | return NULL; |