Lines Matching refs:va_block

395 	struct hl_vm_va_block *va_block, *tmp;  in clear_va_list_locked()  local
397 list_for_each_entry_safe(va_block, tmp, va_list, node) { in clear_va_list_locked()
398 list_del(&va_block->node); in clear_va_list_locked()
399 kfree(va_block); in clear_va_list_locked()
417 struct hl_vm_va_block *va_block; in print_va_list_locked() local
421 list_for_each_entry(va_block, va_list, node) in print_va_list_locked()
424 va_block->start, va_block->end, va_block->size); in print_va_list_locked()
441 struct list_head *va_list, struct hl_vm_va_block *va_block) in merge_va_blocks_locked() argument
445 prev = list_prev_entry(va_block, node); in merge_va_blocks_locked()
446 if (&prev->node != va_list && prev->end + 1 == va_block->start) { in merge_va_blocks_locked()
447 prev->end = va_block->end; in merge_va_blocks_locked()
449 list_del(&va_block->node); in merge_va_blocks_locked()
450 kfree(va_block); in merge_va_blocks_locked()
451 va_block = prev; in merge_va_blocks_locked()
454 next = list_next_entry(va_block, node); in merge_va_blocks_locked()
455 if (&next->node != va_list && va_block->end + 1 == next->start) { in merge_va_blocks_locked()
456 next->start = va_block->start; in merge_va_blocks_locked()
458 list_del(&va_block->node); in merge_va_blocks_locked()
459 kfree(va_block); in merge_va_blocks_locked()
479 struct hl_vm_va_block *va_block, *res = NULL; in add_va_block_locked() local
484 list_for_each_entry(va_block, va_list, node) { in add_va_block_locked()
486 if (hl_mem_area_crosses_range(start, size, va_block->start, in add_va_block_locked()
487 va_block->end)) { in add_va_block_locked()
490 va_block->start, va_block->end); in add_va_block_locked()
494 if (va_block->end < start) in add_va_block_locked()
495 res = va_block; in add_va_block_locked()
498 va_block = kmalloc(sizeof(*va_block), GFP_KERNEL); in add_va_block_locked()
499 if (!va_block) in add_va_block_locked()
502 va_block->start = start; in add_va_block_locked()
503 va_block->end = end; in add_va_block_locked()
504 va_block->size = size; in add_va_block_locked()
507 list_add(&va_block->node, va_list); in add_va_block_locked()
509 list_add(&va_block->node, &res->node); in add_va_block_locked()
511 merge_va_blocks_locked(hdev, va_list, va_block); in add_va_block_locked()
590 struct hl_vm_va_block *va_block, *new_va_block = NULL; in get_va_block() local
636 list_for_each_entry(va_block, &va_range->list, node) { in get_va_block()
638 valid_start = va_block->start; in get_va_block()
643 if (valid_start > va_block->end) in get_va_block()
647 valid_size = va_block->end - valid_start; in get_va_block()
663 new_va_block = va_block; in get_va_block()
669 (hint_addr + size) <= va_block->end) { in get_va_block()
670 new_va_block = va_block; in get_va_block()