Lines Matching refs:mas
106 static inline unsigned long mas_range_len(struct ma_state *mas) in mas_range_len() argument
108 return mas->last - mas->index + 1; in mas_range_len()
137 MA_STATE(mas, free_areas, 0, ULONG_MAX); in execmem_cache_clean()
141 mas_for_each(&mas, area, ULONG_MAX) { in execmem_cache_clean()
142 size_t size = mas_range_len(&mas); in execmem_cache_clean()
145 IS_ALIGNED(mas.index, PMD_SIZE)) { in execmem_cache_clean()
149 mas_store_gfp(&mas, NULL, GFP_KERNEL); in execmem_cache_clean()
163 MA_STATE(mas, free_areas, addr - 1, addr + 1); in execmem_cache_add()
172 area = mas_walk(&mas); in execmem_cache_add()
173 if (area && mas.last == addr - 1) in execmem_cache_add()
174 lower = mas.index; in execmem_cache_add()
176 area = mas_next(&mas, ULONG_MAX); in execmem_cache_add()
177 if (area && mas.index == addr + size) in execmem_cache_add()
178 upper = mas.last; in execmem_cache_add()
180 mas_set_range(&mas, lower, upper); in execmem_cache_add()
181 err = mas_store_gfp(&mas, (void *)lower, GFP_KERNEL); in execmem_cache_add()
189 static bool within_range(struct execmem_range *range, struct ma_state *mas, in within_range() argument
192 unsigned long addr = mas->index; in within_range()
349 MA_STATE(mas, busy_areas, addr, addr); in execmem_cache_free()
354 area = mas_walk(&mas); in execmem_cache_free()
359 size = mas_range_len(&mas); in execmem_cache_free()
361 mas_store_gfp(&mas, NULL, GFP_KERNEL); in execmem_cache_free()