Before triggering a BUG() it would be useful to understand how two areas overlap between each other. Print information about start/end addresses of both VAs and their addresses. For example if both are identical it could mean double free. Signed-off-by: Uladzislau Rezki (Sony) <urezki@xxxxxxxxx> --- mm/vmalloc.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/mm/vmalloc.c b/mm/vmalloc.c index 5a2b55c8dd9a..db2e1020dc51 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c @@ -549,8 +549,13 @@ find_va_links(struct vmap_area *va, else if (va->va_end > tmp_va->va_start && va->va_start >= tmp_va->va_end) link = &(*link)->rb_right; - else + else { + pr_err("Overlaps: 0x%px(0x%lx-0x%lx), 0x%px(0x%lx-0x%lx)\n", + va, va->va_start, va->va_end, tmp_va, + tmp_va->va_start, tmp_va->va_end); + BUG(); + } } while (*link); *parent = &tmp_va->rb_node; -- 2.20.1