• Joonsoo Kim's avatar
    mm, vmalloc: protect va->vm by vmap_area_lock · c69480ad
    Joonsoo Kim authored
    Inserting and removing an entry to vmlist is linear time complexity, so
    it is inefficient.  Following patches will try to remove vmlist
    entirely.  This patch is preparing step for it.
    
    For removing vmlist, iterating vmlist codes should be changed to
    iterating a vmap_area_list.  Before implementing that, we should make
    sure that when we iterate a vmap_area_list, accessing to va->vm doesn't
    cause a race condition.  This patch ensure that when iterating a
    vmap_area_list, there is no race condition for accessing to vm_struct.
    Signed-off-by: default avatarJoonsoo Kim <js1304@gmail.com>
    Signed-off-by: default avatarJoonsoo Kim <iamjoonsoo.kim@lge.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Atsushi Kumagai <kumagai-atsushi@mxc.nes.nec.co.jp>
    Cc: Chris Metcalf <cmetcalf@tilera.com>
    Cc: Dave Anderson <anderson@redhat.com>
    Cc: Eric Biederman <ebiederm@xmission.com>
    Cc: Guan Xuetao <gxt@mprc.pku.edu.cn>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Vivek Goyal <vgoyal@redhat.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    c69480ad
vmalloc.c 67.1 KB