[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