Lines Matching refs:blockpool
1093 static void __vxge_hw_blockpool_destroy(struct __vxge_hw_blockpool *blockpool) in __vxge_hw_blockpool_destroy() argument
1098 if (!blockpool) in __vxge_hw_blockpool_destroy()
1101 hldev = blockpool->hldev; in __vxge_hw_blockpool_destroy()
1103 list_for_each_safe(p, n, &blockpool->free_block_list) { in __vxge_hw_blockpool_destroy()
1115 blockpool->pool_size--; in __vxge_hw_blockpool_destroy()
1118 list_for_each_safe(p, n, &blockpool->free_entry_list) { in __vxge_hw_blockpool_destroy()
1131 struct __vxge_hw_blockpool *blockpool, in __vxge_hw_blockpool_create() argument
1143 if (blockpool == NULL) { in __vxge_hw_blockpool_create()
1148 blockpool->hldev = hldev; in __vxge_hw_blockpool_create()
1149 blockpool->block_size = VXGE_HW_BLOCK_SIZE; in __vxge_hw_blockpool_create()
1150 blockpool->pool_size = 0; in __vxge_hw_blockpool_create()
1151 blockpool->pool_max = pool_max; in __vxge_hw_blockpool_create()
1152 blockpool->req_out = 0; in __vxge_hw_blockpool_create()
1154 INIT_LIST_HEAD(&blockpool->free_block_list); in __vxge_hw_blockpool_create()
1155 INIT_LIST_HEAD(&blockpool->free_entry_list); in __vxge_hw_blockpool_create()
1161 __vxge_hw_blockpool_destroy(blockpool); in __vxge_hw_blockpool_create()
1165 list_add(&entry->item, &blockpool->free_entry_list); in __vxge_hw_blockpool_create()
1175 __vxge_hw_blockpool_destroy(blockpool); in __vxge_hw_blockpool_create()
1185 __vxge_hw_blockpool_destroy(blockpool); in __vxge_hw_blockpool_create()
1190 if (!list_empty(&blockpool->free_entry_list)) in __vxge_hw_blockpool_create()
1192 list_first_entry(&blockpool->free_entry_list, in __vxge_hw_blockpool_create()
1208 &blockpool->free_block_list); in __vxge_hw_blockpool_create()
1209 blockpool->pool_size++; in __vxge_hw_blockpool_create()
1211 __vxge_hw_blockpool_destroy(blockpool); in __vxge_hw_blockpool_create()
2255 struct __vxge_hw_blockpool *blockpool; in vxge_hw_blockpool_block_add() local
2259 blockpool = &devh->block_pool; in vxge_hw_blockpool_block_add()
2262 blockpool->req_out--; in vxge_hw_blockpool_block_add()
2271 blockpool->req_out--; in vxge_hw_blockpool_block_add()
2275 if (!list_empty(&blockpool->free_entry_list)) in vxge_hw_blockpool_block_add()
2277 list_first_entry(&blockpool->free_entry_list, in vxge_hw_blockpool_block_add()
2292 list_add(&entry->item, &blockpool->free_block_list); in vxge_hw_blockpool_block_add()
2293 blockpool->pool_size++; in vxge_hw_blockpool_block_add()
2296 blockpool->req_out--; in vxge_hw_blockpool_block_add()
2322 void __vxge_hw_blockpool_blocks_add(struct __vxge_hw_blockpool *blockpool) in __vxge_hw_blockpool_blocks_add() argument
2326 if ((blockpool->pool_size + blockpool->req_out) < in __vxge_hw_blockpool_blocks_add()
2329 blockpool->req_out += nreq; in __vxge_hw_blockpool_blocks_add()
2334 (blockpool->hldev)->pdev, in __vxge_hw_blockpool_blocks_add()
2335 blockpool->hldev, VXGE_HW_BLOCK_SIZE); in __vxge_hw_blockpool_blocks_add()
2347 struct __vxge_hw_blockpool *blockpool; in __vxge_hw_blockpool_malloc() local
2350 blockpool = &devh->block_pool; in __vxge_hw_blockpool_malloc()
2352 if (size != blockpool->block_size) { in __vxge_hw_blockpool_malloc()
2373 if (!list_empty(&blockpool->free_block_list)) in __vxge_hw_blockpool_malloc()
2375 list_first_entry(&blockpool->free_block_list, in __vxge_hw_blockpool_malloc()
2387 &blockpool->free_entry_list); in __vxge_hw_blockpool_malloc()
2388 blockpool->pool_size--; in __vxge_hw_blockpool_malloc()
2392 __vxge_hw_blockpool_blocks_add(blockpool); in __vxge_hw_blockpool_malloc()
2402 __vxge_hw_blockpool_blocks_remove(struct __vxge_hw_blockpool *blockpool) in __vxge_hw_blockpool_blocks_remove() argument
2406 list_for_each_safe(p, n, &blockpool->free_block_list) { in __vxge_hw_blockpool_blocks_remove()
2408 if (blockpool->pool_size < blockpool->pool_max) in __vxge_hw_blockpool_blocks_remove()
2412 (blockpool->hldev)->pdev, in __vxge_hw_blockpool_blocks_remove()
2418 (blockpool->hldev)->pdev, in __vxge_hw_blockpool_blocks_remove()
2424 list_add(p, &blockpool->free_entry_list); in __vxge_hw_blockpool_blocks_remove()
2426 blockpool->pool_size--; in __vxge_hw_blockpool_blocks_remove()
2440 struct __vxge_hw_blockpool *blockpool; in __vxge_hw_blockpool_free() local
2443 blockpool = &devh->block_pool; in __vxge_hw_blockpool_free()
2445 if (size != blockpool->block_size) { in __vxge_hw_blockpool_free()
2451 if (!list_empty(&blockpool->free_entry_list)) in __vxge_hw_blockpool_free()
2453 list_first_entry(&blockpool->free_entry_list, in __vxge_hw_blockpool_free()
2470 &blockpool->free_block_list); in __vxge_hw_blockpool_free()
2471 blockpool->pool_size++; in __vxge_hw_blockpool_free()
2477 __vxge_hw_blockpool_blocks_remove(blockpool); in __vxge_hw_blockpool_free()
4762 struct __vxge_hw_blockpool *blockpool; in __vxge_hw_blockpool_block_allocate() local
4764 blockpool = &devh->block_pool; in __vxge_hw_blockpool_block_allocate()
4766 if (size == blockpool->block_size) { in __vxge_hw_blockpool_block_allocate()
4768 if (!list_empty(&blockpool->free_block_list)) in __vxge_hw_blockpool_block_allocate()
4770 list_first_entry(&blockpool->free_block_list, in __vxge_hw_blockpool_block_allocate()
4776 blockpool->pool_size--; in __vxge_hw_blockpool_block_allocate()
4781 __vxge_hw_blockpool_blocks_add(blockpool); in __vxge_hw_blockpool_block_allocate()
4944 struct __vxge_hw_blockpool *blockpool; in __vxge_hw_blockpool_block_free() local
4946 blockpool = &devh->block_pool; in __vxge_hw_blockpool_block_free()
4948 if (entry->length == blockpool->block_size) { in __vxge_hw_blockpool_block_free()
4949 list_add(&entry->item, &blockpool->free_block_list); in __vxge_hw_blockpool_block_free()
4950 blockpool->pool_size++; in __vxge_hw_blockpool_block_free()
4953 __vxge_hw_blockpool_blocks_remove(blockpool); in __vxge_hw_blockpool_block_free()