[PATCH v6 4/8] vmalloc: make find_vm_area check in range

KOSAKI Motohiro kosaki.motohiro at jp.fujitsu.com
Wed May 15 17:37:52 EDT 2013


On Wed, May 15, 2013 at 5:06 AM, HATAYAMA Daisuke
<d.hatayama at jp.fujitsu.com> wrote:
> Currently, __find_vmap_area searches for the kernel VM area starting
> at a given address. This patch changes this behavior so that it
> searches for the kernel VM area to which the address belongs. This
> change is needed by remap_vmalloc_range_partial to be introduced in
> later patch that receives any position of kernel VM area as target
> address.
>
> This patch changes the condition (addr > va->va_start) to the
> equivalent (addr >= va->va_end) by taking advantage of the fact that
> each kernel VM area is non-overlapping.
>
> Signed-off-by: HATAYAMA Daisuke <d.hatayama at jp.fujitsu.com>
> ---
>
>  mm/vmalloc.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/mm/vmalloc.c b/mm/vmalloc.c
> index d365724..3875fa2 100644
> --- a/mm/vmalloc.c
> +++ b/mm/vmalloc.c
> @@ -292,7 +292,7 @@ static struct vmap_area *__find_vmap_area(unsigned long addr)
>                 va = rb_entry(n, struct vmap_area, rb_node);
>                 if (addr < va->va_start)
>                         n = n->rb_left;
> -               else if (addr > va->va_start)
> +               else if (addr >= va->va_end)
>                         n = n->rb_right;

OK. This is natural definition. Looks good.

Acked-by: KOSAKI Motohiro <kosaki.motohiro at jp.fujitsu.com>



More information about the kexec mailing list