aboutsummaryrefslogtreecommitdiffstats
path: root/mm/vmalloc.c
diff options
context:
space:
mode:
Diffstat (limited to 'mm/vmalloc.c')
-rw-r--r--mm/vmalloc.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index f64632b67196..fdbb116ee669 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -2690,14 +2690,14 @@ void get_vmalloc_info(struct vmalloc_info *vmi)
2690 2690
2691 prev_end = VMALLOC_START; 2691 prev_end = VMALLOC_START;
2692 2692
2693 spin_lock(&vmap_area_lock); 2693 rcu_read_lock();
2694 2694
2695 if (list_empty(&vmap_area_list)) { 2695 if (list_empty(&vmap_area_list)) {
2696 vmi->largest_chunk = VMALLOC_TOTAL; 2696 vmi->largest_chunk = VMALLOC_TOTAL;
2697 goto out; 2697 goto out;
2698 } 2698 }
2699 2699
2700 list_for_each_entry(va, &vmap_area_list, list) { 2700 list_for_each_entry_rcu(va, &vmap_area_list, list) {
2701 unsigned long addr = va->va_start; 2701 unsigned long addr = va->va_start;
2702 2702
2703 /* 2703 /*
@@ -2724,7 +2724,7 @@ void get_vmalloc_info(struct vmalloc_info *vmi)
2724 vmi->largest_chunk = VMALLOC_END - prev_end; 2724 vmi->largest_chunk = VMALLOC_END - prev_end;
2725 2725
2726out: 2726out:
2727 spin_unlock(&vmap_area_lock); 2727 rcu_read_unlock();
2728} 2728}
2729#endif 2729#endif
2730 2730