OSDN Git Service

x86, mm: Change find_early_table_space() paramters
authorYinghai Lu <yinghai@kernel.org>
Sat, 17 Nov 2012 03:38:43 +0000 (19:38 -0800)
committerH. Peter Anvin <hpa@linux.intel.com>
Sat, 17 Nov 2012 19:59:05 +0000 (11:59 -0800)
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>
arch/x86/mm/init.c

index dbef4ff..51f919f 100644 (file)
@@ -196,12 +196,18 @@ static int __meminit split_mem_range(struct map_range *mr, int nr_range,
  * mr[0].start to mr[nr_range - 1].end, while accounting for possible 2M and 1GB
  * pages. Then find enough contiguous space for those page tables.
  */
-static void __init find_early_table_space(struct map_range *mr, int nr_range)
+static void __init find_early_table_space(unsigned long start, unsigned long end)
 {
        int i;
        unsigned long puds = 0, pmds = 0, ptes = 0, tables;
-       unsigned long start = 0, good_end;
+       unsigned long good_end;
        phys_addr_t base;
+       struct map_range mr[NR_RANGE_MR];
+       int nr_range;
+
+       memset(mr, 0, sizeof(mr));
+       nr_range = 0;
+       nr_range = split_mem_range(mr, nr_range, start, end);
 
        for (i = 0; i < nr_range; i++) {
                unsigned long range, extra;
@@ -276,7 +282,7 @@ unsigned long __init_refok init_memory_mapping(unsigned long start,
         * nodes are discovered.
         */
        if (!after_bootmem)
-               find_early_table_space(mr, nr_range);
+               find_early_table_space(start, end);
 
        for (i = 0; i < nr_range; i++)
                ret = kernel_physical_mapping_init(mr[i].start, mr[i].end,