Lines Matching refs:mrange_info
828 static void fadump_free_mem_ranges(struct fadump_mrange_info *mrange_info) in fadump_free_mem_ranges() argument
830 if (mrange_info->is_static) { in fadump_free_mem_ranges()
831 mrange_info->mem_range_cnt = 0; in fadump_free_mem_ranges()
835 kfree(mrange_info->mem_ranges); in fadump_free_mem_ranges()
836 memset((void *)((u64)mrange_info + RNG_NAME_SZ), 0, in fadump_free_mem_ranges()
844 static int fadump_alloc_mem_ranges(struct fadump_mrange_info *mrange_info) in fadump_alloc_mem_ranges() argument
849 new_size = mrange_info->mem_ranges_sz + PAGE_SIZE; in fadump_alloc_mem_ranges()
851 new_size, mrange_info->name); in fadump_alloc_mem_ranges()
853 new_array = krealloc(mrange_info->mem_ranges, new_size, GFP_KERNEL); in fadump_alloc_mem_ranges()
856 mrange_info->name); in fadump_alloc_mem_ranges()
857 fadump_free_mem_ranges(mrange_info); in fadump_alloc_mem_ranges()
861 mrange_info->mem_ranges = new_array; in fadump_alloc_mem_ranges()
862 mrange_info->mem_ranges_sz = new_size; in fadump_alloc_mem_ranges()
863 mrange_info->max_mem_ranges = (new_size / in fadump_alloc_mem_ranges()
867 static inline int fadump_add_mem_range(struct fadump_mrange_info *mrange_info, in fadump_add_mem_range() argument
870 struct fadump_memory_range *mem_ranges = mrange_info->mem_ranges; in fadump_add_mem_range()
881 if (mrange_info->mem_range_cnt) { in fadump_add_mem_range()
882 start = mem_ranges[mrange_info->mem_range_cnt - 1].base; in fadump_add_mem_range()
883 size = mem_ranges[mrange_info->mem_range_cnt - 1].size; in fadump_add_mem_range()
895 if (mrange_info->mem_range_cnt == mrange_info->max_mem_ranges) { in fadump_add_mem_range()
898 if (mrange_info->is_static) { in fadump_add_mem_range()
900 mrange_info->name); in fadump_add_mem_range()
904 ret = fadump_alloc_mem_ranges(mrange_info); in fadump_add_mem_range()
909 mem_ranges = mrange_info->mem_ranges; in fadump_add_mem_range()
913 mem_ranges[mrange_info->mem_range_cnt].base = start; in fadump_add_mem_range()
914 mrange_info->mem_range_cnt++; in fadump_add_mem_range()
917 mem_ranges[mrange_info->mem_range_cnt - 1].size = (end - start); in fadump_add_mem_range()
919 mrange_info->name, (mrange_info->mem_range_cnt - 1), in fadump_add_mem_range()
1229 static void sort_and_merge_mem_ranges(struct fadump_mrange_info *mrange_info) in sort_and_merge_mem_ranges() argument
1239 mem_ranges = mrange_info->mem_ranges; in sort_and_merge_mem_ranges()
1240 for (i = 0; i < mrange_info->mem_range_cnt; i++) { in sort_and_merge_mem_ranges()
1242 for (j = (i + 1); j < mrange_info->mem_range_cnt; j++) { in sort_and_merge_mem_ranges()
1252 for (i = 1; i < mrange_info->mem_range_cnt; i++) { in sort_and_merge_mem_ranges()
1265 mrange_info->mem_range_cnt = idx + 1; in sort_and_merge_mem_ranges()