lkml.org 
[lkml]   [2012]   [Nov]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 02/46] x86, mm: Split out split_mem_range from init_memory_mapping
2012/11/13 6:17, Yinghai Lu wrote:
> So make init_memory_mapping smaller and readable.
>
> Suggested-by: Ingo Molnar <mingo@elte.hu>
> Signed-off-by: Yinghai Lu <yinghai@kernel.org>
> Reviewed-by: Pekka Enberg <penberg@kernel.org>
> ---
> arch/x86/mm/init.c | 42 ++++++++++++++++++++++++++----------------
> 1 files changed, 26 insertions(+), 16 deletions(-)
>
> diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
> index aa5b0da..6d8e102 100644
> --- a/arch/x86/mm/init.c
> +++ b/arch/x86/mm/init.c
> @@ -146,25 +146,13 @@ static int __meminit save_mr(struct map_range *mr, int nr_range,
> return nr_range;
> }
>
> -/*
> - * Setup the direct mapping of the physical memory at PAGE_OFFSET.
> - * This runs before bootmem is initialized and gets pages directly from
> - * the physical memory. To access them they are temporarily mapped.
> - */
> -unsigned long __init_refok init_memory_mapping(unsigned long start,
> - unsigned long end)
> +static int __meminit split_mem_range(struct map_range *mr, int nr_range,
> + unsigned long start,
> + unsigned long end)
> {
> unsigned long start_pfn, end_pfn;
> - unsigned long ret = 0;
> unsigned long pos;
> - struct map_range mr[NR_RANGE_MR];
> - int nr_range, i;
> -
> - printk(KERN_INFO "init_memory_mapping: [mem %#010lx-%#010lx]\n",
> - start, end - 1);
> -
> - memset(mr, 0, sizeof(mr));
> - nr_range = 0;
> + int i;
>
> /* head if not big page alignment ? */
> start_pfn = start >> PAGE_SHIFT;
> @@ -258,6 +246,28 @@ unsigned long __init_refok init_memory_mapping(unsigned long start,
> (mr[i].page_size_mask & (1<<PG_LEVEL_1G))?"1G":(
> (mr[i].page_size_mask & (1<<PG_LEVEL_2M))?"2M":"4k"));
>
> + return nr_range;
> +}
> +
> +/*
> + * Setup the direct mapping of the physical memory at PAGE_OFFSET.
> + * This runs before bootmem is initialized and gets pages directly from
> + * the physical memory. To access them they are temporarily mapped.
> + */
> +unsigned long __init_refok init_memory_mapping(unsigned long start,
> + unsigned long end)
> +{
> + struct map_range mr[NR_RANGE_MR];
> + unsigned long ret = 0;
> + int nr_range, i;
> +
> + pr_info("init_memory_mapping: [mem %#010lx-%#010lx]\n",
> + start, end - 1);
> +
> + memset(mr, 0, sizeof(mr));

> + nr_range = 0;

This is unnecessary since it is set in the below.

> + nr_range = split_mem_range(mr, nr_range, start, end);

Thanks,
Yasuaki Ishimatsu

> +
> /*
> * Find space for the kernel direct mapping tables.
> *
>




\
 
 \ /
  Last update: 2012-11-13 08:01    [W:0.216 / U:0.212 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site