[PATCH v5 3/8] vmalloc: make find_vm_area check in range

Vivek Goyal vgoyal at redhat.com
Tue May 14 10:50:03 EDT 2013


On Tue, May 14, 2013 at 10:57:23AM +0900, HATAYAMA Daisuke 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>

This will require ack from mm folks. CCing some of them. 

Thanks
Vivek

> ---
> 
>  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;
>  		else
>  			return va;



More information about the kexec mailing list