diff options
Diffstat (limited to 'mm/vmalloc.c')
-rw-r--r-- | mm/vmalloc.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/mm/vmalloc.c b/mm/vmalloc.c index 4fa8d84599b0..e0fc963acc41 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c | |||
@@ -1259,6 +1259,12 @@ static bool __purge_vmap_area_lazy(unsigned long start, unsigned long end) | |||
1259 | return false; | 1259 | return false; |
1260 | 1260 | ||
1261 | /* | 1261 | /* |
1262 | * First make sure the mappings are removed from all page-tables | ||
1263 | * before they are freed. | ||
1264 | */ | ||
1265 | vmalloc_sync_all(); | ||
1266 | |||
1267 | /* | ||
1262 | * TODO: to calculate a flush range without looping. | 1268 | * TODO: to calculate a flush range without looping. |
1263 | * The list can be up to lazy_max_pages() elements. | 1269 | * The list can be up to lazy_max_pages() elements. |
1264 | */ | 1270 | */ |
@@ -3038,6 +3044,9 @@ EXPORT_SYMBOL(remap_vmalloc_range); | |||
3038 | /* | 3044 | /* |
3039 | * Implement a stub for vmalloc_sync_all() if the architecture chose not to | 3045 | * Implement a stub for vmalloc_sync_all() if the architecture chose not to |
3040 | * have one. | 3046 | * have one. |
3047 | * | ||
3048 | * The purpose of this function is to make sure the vmalloc area | ||
3049 | * mappings are identical in all page-tables in the system. | ||
3041 | */ | 3050 | */ |
3042 | void __weak vmalloc_sync_all(void) | 3051 | void __weak vmalloc_sync_all(void) |
3043 | { | 3052 | { |