• Uladzislau Rezki (Sony)'s avatar
    mm/vmalloc.c: remove BUG() from the find_va_links() · 9c801f61
    Uladzislau Rezki (Sony) authored
    Get rid of BUG() macro, that should be used only when a critical situation
    happens and a system is not able to function anymore.
    
    Replace it with WARN() macro instead, dump some extra information about
    start/end addresses of both VAs which overlap.  Such overlap data can help
    to figure out what happened making further analysis easier.  For example
    if both areas are identical it could mean a double free.
    
    A recovery process consists of declining all further steps regarding
    inserting of conflicting overlap range.  In that sense find_va_links() now
    can return NULL, so its return value has to be checked by callers.
    
    Side effect of such process is it can leak memory, but it is better than
    just killing a machine for no good reason.  Apart of that a debugging
    process can be done on alive system.
    Signed-off-by: default avatarUladzislau Rezki (Sony) <urezki@gmail.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Cc: Hillf Danton <hdanton@sina.com>
    Cc: Michal Hocko <mhocko@suse.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Oleksiy Avramchenko <oleksiy.avramchenko@sonymobile.com>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Link: http://lkml.kernel.org/r/20200711104531.12242-1-urezki@gmail.comSigned-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    9c801f61
vmalloc.c 90.6 KB