diff options
Diffstat (limited to 'mm')
-rw-r--r-- | mm/vmalloc.c | 6 |
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 | ||
2726 | out: | 2726 | out: |
2727 | spin_unlock(&vmap_area_lock); | 2727 | rcu_read_unlock(); |
2728 | } | 2728 | } |
2729 | #endif | 2729 | #endif |
2730 | 2730 | ||