Lines Matching refs:um_info
445 static u64 *check_realloc_usable_mem(struct umem_info *um_info, int cnt) in check_realloc_usable_mem() argument
450 if ((um_info->idx + cnt) <= um_info->max_entries) in check_realloc_usable_mem()
451 return um_info->buf; in check_realloc_usable_mem()
453 new_size = um_info->size + MEM_RANGE_CHUNK_SZ; in check_realloc_usable_mem()
454 tbuf = krealloc(um_info->buf, new_size, GFP_KERNEL); in check_realloc_usable_mem()
456 um_info->buf = tbuf; in check_realloc_usable_mem()
457 um_info->size = new_size; in check_realloc_usable_mem()
458 um_info->max_entries = (um_info->size / sizeof(u64)); in check_realloc_usable_mem()
473 static int add_usable_mem(struct umem_info *um_info, u64 base, u64 end) in add_usable_mem() argument
479 for (i = 0; i < um_info->nr_ranges; i++) { in add_usable_mem()
481 loc_base = um_info->ranges[i].start; in add_usable_mem()
482 loc_end = um_info->ranges[i].end; in add_usable_mem()
494 if (!check_realloc_usable_mem(um_info, 2)) in add_usable_mem()
497 um_info->buf[um_info->idx++] = cpu_to_be64(loc_base); in add_usable_mem()
498 um_info->buf[um_info->idx++] = in add_usable_mem()
519 struct umem_info *um_info; in kdump_setup_usable_lmb() local
532 um_info = data; in kdump_setup_usable_lmb()
533 tmp_idx = um_info->idx; in kdump_setup_usable_lmb()
534 if (!check_realloc_usable_mem(um_info, 1)) in kdump_setup_usable_lmb()
537 um_info->idx++; in kdump_setup_usable_lmb()
540 ret = add_usable_mem(um_info, base, end); in kdump_setup_usable_lmb()
546 um_info->buf[tmp_idx] = in kdump_setup_usable_lmb()
547 cpu_to_be64((um_info->idx - tmp_idx - 1) / 2); in kdump_setup_usable_lmb()
564 struct umem_info *um_info) in add_usable_mem_property() argument
595 um_info->idx = 0; in add_usable_mem_property()
596 if (!check_realloc_usable_mem(um_info, 2)) { in add_usable_mem_property()
619 ret = add_usable_mem(um_info, base, end); in add_usable_mem_property()
629 if (um_info->idx == 0) { in add_usable_mem_property()
630 um_info->buf[0] = 0; in add_usable_mem_property()
631 um_info->buf[1] = 0; in add_usable_mem_property()
632 um_info->idx = 2; in add_usable_mem_property()
635 ret = fdt_setprop(fdt, node, "linux,usable-memory", um_info->buf, in add_usable_mem_property()
636 (um_info->idx * sizeof(u64))); in add_usable_mem_property()
655 struct umem_info um_info; in update_usable_mem_fdt() local
672 um_info.buf = NULL; in update_usable_mem_fdt()
673 um_info.size = 0; in update_usable_mem_fdt()
674 um_info.max_entries = 0; in update_usable_mem_fdt()
675 um_info.idx = 0; in update_usable_mem_fdt()
677 um_info.ranges = &(usable_mem->ranges[0]); in update_usable_mem_fdt()
678 um_info.nr_ranges = usable_mem->nr_ranges; in update_usable_mem_fdt()
682 ret = walk_drmem_lmbs(dn, &um_info, kdump_setup_usable_lmb); in update_usable_mem_fdt()
691 um_info.buf, (um_info.idx * sizeof(u64))); in update_usable_mem_fdt()
704 ret = add_usable_mem_property(fdt, dn, &um_info); in update_usable_mem_fdt()
714 kfree(um_info.buf); in update_usable_mem_fdt()