aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/mm/init.c
diff options
context:
space:
mode:
authorYinghai Lu <yinghai@kernel.org>2012-11-16 22:38:43 -0500
committerH. Peter Anvin <hpa@linux.intel.com>2012-11-17 14:59:05 -0500
commit84f1ae30bb68d8da98bca7ff2c2b825b2ac8c9a5 (patch)
tree37dc9f269c42c432c4183beb69f4e13eccc1e1ab /arch/x86/mm/init.c
parent28b6ff667013735dd2e68edd105d17cdf3835dcb (diff)
x86, mm: Change find_early_table_space() paramters
call split_mem_range inside the function. Signed-off-by: Yinghai Lu <yinghai@kernel.org> Link: http://lkml.kernel.org/r/1353123563-3103-7-git-send-email-yinghai@kernel.org Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Diffstat (limited to 'arch/x86/mm/init.c')
-rw-r--r--arch/x86/mm/init.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
index dbef4ffe8d31..51f919febf64 100644
--- a/arch/x86/mm/init.c
+++ b/arch/x86/mm/init.c
@@ -196,12 +196,18 @@ static int __meminit split_mem_range(struct map_range *mr, int nr_range,
196 * mr[0].start to mr[nr_range - 1].end, while accounting for possible 2M and 1GB 196 * mr[0].start to mr[nr_range - 1].end, while accounting for possible 2M and 1GB
197 * pages. Then find enough contiguous space for those page tables. 197 * pages. Then find enough contiguous space for those page tables.
198 */ 198 */
199static void __init find_early_table_space(struct map_range *mr, int nr_range) 199static void __init find_early_table_space(unsigned long start, unsigned long end)
200{ 200{
201 int i; 201 int i;
202 unsigned long puds = 0, pmds = 0, ptes = 0, tables; 202 unsigned long puds = 0, pmds = 0, ptes = 0, tables;
203 unsigned long start = 0, good_end; 203 unsigned long good_end;
204 phys_addr_t base; 204 phys_addr_t base;
205 struct map_range mr[NR_RANGE_MR];
206 int nr_range;
207
208 memset(mr, 0, sizeof(mr));
209 nr_range = 0;
210 nr_range = split_mem_range(mr, nr_range, start, end);
205 211
206 for (i = 0; i < nr_range; i++) { 212 for (i = 0; i < nr_range; i++) {
207 unsigned long range, extra; 213 unsigned long range, extra;
@@ -276,7 +282,7 @@ unsigned long __init_refok init_memory_mapping(unsigned long start,
276 * nodes are discovered. 282 * nodes are discovered.
277 */ 283 */
278 if (!after_bootmem) 284 if (!after_bootmem)
279 find_early_table_space(mr, nr_range); 285 find_early_table_space(start, end);
280 286
281 for (i = 0; i < nr_range; i++) 287 for (i = 0; i < nr_range; i++)
282 ret = kernel_physical_mapping_init(mr[i].start, mr[i].end, 288 ret = kernel_physical_mapping_init(mr[i].start, mr[i].end,