Lines Matching defs:pool

382  * srp_destroy_fr_pool() - free the resources owned by a pool
383 * @pool: Fast registration pool to be destroyed.
385 static void srp_destroy_fr_pool(struct srp_fr_pool *pool)
390 if (!pool)
393 for (i = 0, d = &pool->desc[0]; i < pool->size; i++, d++) {
397 kfree(pool);
401 * srp_create_fr_pool() - allocate and initialize a pool for fast registration
411 struct srp_fr_pool *pool;
420 pool = kzalloc(struct_size(pool, desc, pool_size), GFP_KERNEL);
421 if (!pool)
423 pool->size = pool_size;
424 pool->max_page_list_len = max_page_list_len;
425 spin_lock_init(&pool->lock);
426 INIT_LIST_HEAD(&pool->free_list);
433 for (i = 0, d = &pool->desc[0]; i < pool->size; i++, d++) {
443 list_add_tail(&d->entry, &pool->free_list);
447 return pool;
450 srp_destroy_fr_pool(pool);
453 pool = ERR_PTR(ret);
459 * @pool: Pool to obtain descriptor from.
461 static struct srp_fr_desc *srp_fr_pool_get(struct srp_fr_pool *pool)
466 spin_lock_irqsave(&pool->lock, flags);
467 if (!list_empty(&pool->free_list)) {
468 d = list_first_entry(&pool->free_list, typeof(*d), entry);
471 spin_unlock_irqrestore(&pool->lock, flags);
478 * @pool: Pool the descriptor was allocated from.
485 static void srp_fr_pool_put(struct srp_fr_pool *pool, struct srp_fr_desc **desc,
491 spin_lock_irqsave(&pool->lock, flags);
493 list_add(&desc[i]->entry, &pool->free_list);
494 spin_unlock_irqrestore(&pool->lock, flags);
590 "FR pool allocation failed (%d)\n", ret);
1807 * Return an IU and possible credit to the free pool
3760 pr_warn("No MR pool and no external indirect descriptors, limiting sg_tablesize to cmd_sg_cnt\n");