vmalloc: make find_vm_area check in range
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@jp.fujitsu.com> Acked-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> Cc: Vivek Goyal <vgoyal@redhat.com> Cc: Atsushi Kumagai <kumagai-atsushi@mxc.nes.nec.co.jp> Cc: Lisa Mitchell <lisa.mitchell@hp.com> Cc: Zhang Yanfei <zhangyanfei@cn.fujitsu.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
7f614cd1e0
Коммит
cef2ac3f6c
|
@ -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;
|
||||
|
|
Загрузка…
Ссылка в новой задаче