Lines Matching refs:slots
289 mem->slots[i].list = min(IO_TLB_SEGSIZE - io_tlb_offset(i), in swiotlb_init_io_tlb_pool()
291 mem->slots[i].orig_addr = INVALID_PHYS_ADDR; in swiotlb_init_io_tlb_pool()
292 mem->slots[i].alloc_size = 0; in swiotlb_init_io_tlb_pool()
293 mem->slots[i].pad_slots = 0; in swiotlb_init_io_tlb_pool()
398 alloc_size = PAGE_ALIGN(array_size(sizeof(*mem->slots), nslabs)); in swiotlb_init_remap()
399 mem->slots = memblock_alloc(alloc_size, PAGE_SIZE); in swiotlb_init_remap()
400 if (!mem->slots) { in swiotlb_init_remap()
504 mem->slots = (void *)__get_free_pages(GFP_KERNEL | __GFP_ZERO, in swiotlb_init_late()
505 get_order(array_size(sizeof(*mem->slots), nslabs))); in swiotlb_init_late()
506 if (!mem->slots) in swiotlb_init_late()
541 slots_size = PAGE_ALIGN(array_size(sizeof(*mem->slots), mem->nslabs)); in swiotlb_exit()
549 free_pages((unsigned long)mem->slots, get_order(slots_size)); in swiotlb_exit()
554 memblock_free_late(__pa(mem->slots), slots_size); in swiotlb_exit()
713 slot_order = get_order(array_size(sizeof(*pool->slots), nslabs)); in swiotlb_alloc_pool()
714 pool->slots = (struct io_tlb_slot *) in swiotlb_alloc_pool()
716 if (!pool->slots) in swiotlb_alloc_pool()
757 size_t slots_size = array_size(sizeof(*pool->slots), pool->nslabs); in swiotlb_dyn_free()
760 free_pages((unsigned long)pool->slots, get_order(slots_size)); in swiotlb_dyn_free()
863 phys_addr_t orig_addr = mem->slots[index].orig_addr; in swiotlb_bounce()
864 size_t alloc_size = mem->slots[index].alloc_size; in swiotlb_bounce()
1085 if (pool->slots[slot_index].list >= nslots) in swiotlb_search_pool_area()
1103 pool->slots[i].list = 0; in swiotlb_search_pool_area()
1104 pool->slots[i].alloc_size = alloc_size - (offset + in swiotlb_search_pool_area()
1109 pool->slots[i].list; i--) in swiotlb_search_pool_area()
1110 pool->slots[i].list = ++count; in swiotlb_search_pool_area()
1426 pool->slots[index].pad_slots = pad_slots; in swiotlb_tbl_map_single()
1428 pool->slots[index + i].orig_addr = slot_addr(orig_addr, i); in swiotlb_tbl_map_single()
1453 index -= mem->slots[index].pad_slots; in swiotlb_release_slots()
1454 nslots = nr_slots(mem->slots[index].alloc_size + offset); in swiotlb_release_slots()
1468 count = mem->slots[index + nslots].list; in swiotlb_release_slots()
1477 mem->slots[i].list = ++count; in swiotlb_release_slots()
1478 mem->slots[i].orig_addr = INVALID_PHYS_ADDR; in swiotlb_release_slots()
1479 mem->slots[i].alloc_size = 0; in swiotlb_release_slots()
1480 mem->slots[i].pad_slots = 0; in swiotlb_release_slots()
1488 io_tlb_offset(i) != IO_TLB_SEGSIZE - 1 && mem->slots[i].list; in swiotlb_release_slots()
1490 mem->slots[i].list = ++count; in swiotlb_release_slots()
1819 pool->slots = kcalloc(nslabs, sizeof(*pool->slots), GFP_KERNEL); in rmem_swiotlb_device_init()
1820 if (!pool->slots) { in rmem_swiotlb_device_init()
1828 kfree(pool->slots); in rmem_swiotlb_device_init()