On 2016/9/22 5:10, David Rientjes wrote: > On Wed, 21 Sep 2016, zijun_hu wrote: > >> From: zijun_hu <zijun...@htc.com> >> >> 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. > Hmm, the BUG_ON() appears in the original code, i don't introduce it. it maybe be better to consider va->va_start == tmp_va->va_end as normal case and should not BUG_ON() it since the available range of vmap_erea include the start boundary but the end, BTW, represented as [start, end)
this patch correct the logic to that mentioned in the comments, it maybe be more logical and more understandable