提交 20fc02b4 编写于 作者: Z Zhang Yanfei 提交者: Linus Torvalds

mm/vmalloc.c: rename VM_UNLIST to VM_UNINITIALIZED

VM_UNLIST was used to indicate that the vm_struct is not listed in
vmlist.

But after commit 4341fa45 ("mm, vmalloc: remove list management of
vmlist after initializing vmalloc"), the meaning of this flag changed.
It now means the vm_struct is not fully initialized.  So renaming it to
VM_UNINITIALIZED seems more reasonable.

Also change clear_vm_unlist to clear_vm_uninitialized_flag.
Signed-off-by: NZhang Yanfei <zhangyanfei@cn.fujitsu.com>
Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
上级 46c001a2
...@@ -10,12 +10,12 @@ ...@@ -10,12 +10,12 @@
struct vm_area_struct; /* vma defining user mapping in mm_types.h */ struct vm_area_struct; /* vma defining user mapping in mm_types.h */
/* bits in flags of vmalloc's vm_struct below */ /* bits in flags of vmalloc's vm_struct below */
#define VM_IOREMAP 0x00000001 /* ioremap() and friends */ #define VM_IOREMAP 0x00000001 /* ioremap() and friends */
#define VM_ALLOC 0x00000002 /* vmalloc() */ #define VM_ALLOC 0x00000002 /* vmalloc() */
#define VM_MAP 0x00000004 /* vmap()ed pages */ #define VM_MAP 0x00000004 /* vmap()ed pages */
#define VM_USERMAP 0x00000008 /* suitable for remap_vmalloc_range */ #define VM_USERMAP 0x00000008 /* suitable for remap_vmalloc_range */
#define VM_VPAGES 0x00000010 /* buffer for pages was vmalloc'ed */ #define VM_VPAGES 0x00000010 /* buffer for pages was vmalloc'ed */
#define VM_UNLIST 0x00000020 /* vm_struct is not listed in vmlist */ #define VM_UNINITIALIZED 0x00000020 /* vm_struct is not fully initialized */
/* bits [20..32] reserved for arch specific ioremap internals */ /* bits [20..32] reserved for arch specific ioremap internals */
/* /*
......
...@@ -1289,15 +1289,15 @@ static void setup_vmalloc_vm(struct vm_struct *vm, struct vmap_area *va, ...@@ -1289,15 +1289,15 @@ static void setup_vmalloc_vm(struct vm_struct *vm, struct vmap_area *va,
spin_unlock(&vmap_area_lock); spin_unlock(&vmap_area_lock);
} }
static void clear_vm_unlist(struct vm_struct *vm) static void clear_vm_uninitialized_flag(struct vm_struct *vm)
{ {
/* /*
* Before removing VM_UNLIST, * Before removing VM_UNINITIALIZED,
* we should make sure that vm has proper values. * we should make sure that vm has proper values.
* Pair with smp_rmb() in show_numa_info(). * Pair with smp_rmb() in show_numa_info().
*/ */
smp_wmb(); smp_wmb();
vm->flags &= ~VM_UNLIST; vm->flags &= ~VM_UNINITIALIZED;
} }
static struct vm_struct *__get_vm_area_node(unsigned long size, static struct vm_struct *__get_vm_area_node(unsigned long size,
...@@ -1635,7 +1635,7 @@ void *__vmalloc_node_range(unsigned long size, unsigned long align, ...@@ -1635,7 +1635,7 @@ void *__vmalloc_node_range(unsigned long size, unsigned long align,
if (!size || (size >> PAGE_SHIFT) > totalram_pages) if (!size || (size >> PAGE_SHIFT) > totalram_pages)
goto fail; goto fail;
area = __get_vm_area_node(size, align, VM_ALLOC | VM_UNLIST, area = __get_vm_area_node(size, align, VM_ALLOC | VM_UNINITIALIZED,
start, end, node, gfp_mask, caller); start, end, node, gfp_mask, caller);
if (!area) if (!area)
goto fail; goto fail;
...@@ -1645,11 +1645,11 @@ void *__vmalloc_node_range(unsigned long size, unsigned long align, ...@@ -1645,11 +1645,11 @@ void *__vmalloc_node_range(unsigned long size, unsigned long align,
goto fail; goto fail;
/* /*
* In this function, newly allocated vm_struct has VM_UNLIST flag. * In this function, newly allocated vm_struct has VM_UNINITIALIZED
* It means that vm_struct is not fully initialized. * flag. It means that vm_struct is not fully initialized.
* Now, it is fully initialized, so remove this flag here. * Now, it is fully initialized, so remove this flag here.
*/ */
clear_vm_unlist(area); clear_vm_uninitialized_flag(area);
/* /*
* A ref_count = 3 is needed because the vm_struct and vmap_area * A ref_count = 3 is needed because the vm_struct and vmap_area
...@@ -2569,9 +2569,9 @@ static void show_numa_info(struct seq_file *m, struct vm_struct *v) ...@@ -2569,9 +2569,9 @@ static void show_numa_info(struct seq_file *m, struct vm_struct *v)
if (!counters) if (!counters)
return; return;
/* Pair with smp_wmb() in clear_vm_unlist() */ /* Pair with smp_wmb() in clear_vm_uninitialized_flag() */
smp_rmb(); smp_rmb();
if (v->flags & VM_UNLIST) if (v->flags & VM_UNINITIALIZED)
return; return;
memset(counters, 0, nr_node_ids * sizeof(unsigned int)); memset(counters, 0, nr_node_ids * sizeof(unsigned int));
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册