path: root/kernel/kexec.c
diff options
authorJoonsoo Kim <>2013-04-29 15:07:35 -0700
committerLinus Torvalds <>2013-04-29 15:54:34 -0700
commitd4033afdf8282802ad28b0ed854393454115a071 (patch)
tree6a2995430f294e8349c02f5b5c2b4e460ce2bb7b /kernel/kexec.c
parentf98782ddd31ac6f938386b79d8bd7aa7c8a78c50 (diff)
mm, vmalloc: iterate vmap_area_list, instead of vmlist, in vmallocinfo()
This patch is a preparatory step for removing vmlist entirely. For above purpose, we change iterating a vmap_list codes to iterating a vmap_area_list. It is somewhat trivial change, but just one thing should be noticed. Using vmap_area_list in vmallocinfo() introduce ordering problem in SMP system. In s_show(), we retrieve some values from vm_struct. vm_struct's values is not fully setup when va->vm is assigned. Full setup is notified by removing VM_UNLIST flag without holding a lock. When we see that VM_UNLIST is removed, it is not ensured that vm_struct has proper values in view of other CPUs. So we need smp_[rw]mb for ensuring that proper values is assigned when we see that VM_UNLIST is removed. Therefore, this patch not only change a iteration list, but also add a appropriate smp_[rw]mb to right places. Signed-off-by: Joonsoo Kim <> Signed-off-by: Joonsoo Kim <> Cc: Thomas Gleixner <> Cc: "H. Peter Anvin" <> Cc: Atsushi Kumagai <> Cc: Chris Metcalf <> Cc: Dave Anderson <> Cc: Eric Biederman <> Cc: Guan Xuetao <> Cc: Ingo Molnar <> Cc: Vivek Goyal <> Signed-off-by: Andrew Morton <> Signed-off-by: Linus Torvalds <>
Diffstat (limited to 'kernel/kexec.c')
0 files changed, 0 insertions, 0 deletions