Commit d82b1d85760a8344d06272da67f0684243235fac
Committed by
Linus Torvalds
1 parent
543cc11533
Exists in
master
and in
20 other branches
mm, vmalloc: only call setup_vmalloc_vm() only in __get_vm_area_node()
Now for insert_vmalloc_vm, it only calls the two functions: - setup_vmalloc_vm: fill vm_struct and vmap_area instances - clear_vm_unlist: clear VM_UNLIST bit in vm_struct->flags So in __get_vm_area_node(), if VM_UNLIST bit unset in flags, that is the else branch here, we don't need to clear VM_UNLIST bit for vm->flags since this bit is obviously not set. That is to say, we could only call setup_vmalloc_vm instead of insert_vmalloc_vm here. And then we could even remove the if test here. Signed-off-by: Zhang Yanfei <zhangyanfei@cn.fujitsu.com> Acked-by: Joonsoo Kim <iamjoonsoo.kim@lge.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Showing 1 changed file with 1 additions and 10 deletions Side-by-side Diff
mm/vmalloc.c
... | ... | @@ -1367,16 +1367,7 @@ |
1367 | 1367 | return NULL; |
1368 | 1368 | } |
1369 | 1369 | |
1370 | - /* | |
1371 | - * When this function is called from __vmalloc_node_range, | |
1372 | - * we add VM_UNLIST flag to avoid accessing uninitialized | |
1373 | - * members of vm_struct such as pages and nr_pages fields. | |
1374 | - * They will be set later. | |
1375 | - */ | |
1376 | - if (flags & VM_UNLIST) | |
1377 | - setup_vmalloc_vm(area, va, flags, caller); | |
1378 | - else | |
1379 | - insert_vmalloc_vm(area, va, flags, caller); | |
1370 | + setup_vmalloc_vm(area, va, flags, caller); | |
1380 | 1371 | |
1381 | 1372 | return area; |
1382 | 1373 | } |