Re: [PATCH 1/5] mm/vmalloc.c: correct a few logic error for __insert_vmap_area()

From: David Rientjes
Date: Wed Sep 21 2016 - 17:10:59 EST


On Wed, 21 Sep 2016, zijun_hu wrote:

> From: zijun_hu <zijun_hu@xxxxxxx>
>
> correct a few logic error for __insert_vmap_area() since the else
> if condition is always true and meaningless
>
> in order to fix this issue, if vmap_area inserted is lower than one
> on rbtree then walk around left branch; if higher then right branch
> otherwise intersects with the other then BUG_ON() is triggered
>

Under normal operation, you're right that the "else if" conditional should
always succeed: we don't want to BUG() unless there's a bug. The original
code can catch instances when va->va_start == tmp_va->va_end where we
should BUG(). Your code silently ignores it.