Resolves: bz1097904 https://bugzilla.redhat.com/show_bug.cgi?id=1097904
This is back ported from upstream directly. commit cef2ac3f6c8ab532e49cf69d05f540931ad8ee64 Author: HATAYAMA Daisuke <[email protected]> Date: Wed Jul 3 15:02:17 2013 -0700 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 <[email protected]> Acked-by: KOSAKI Motohiro <[email protected]> Cc: Vivek Goyal <[email protected]> Cc: Atsushi Kumagai <[email protected]> Cc: Lisa Mitchell <[email protected]> Cc: Zhang Yanfei <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]> Signed-off-by: Baoquan He <[email protected]> --- mm/vmalloc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/vmalloc.c b/mm/vmalloc.c index a8b83c7..2ae8618 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c @@ -302,7 +302,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; -- 2.1.0 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

