[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