Lines Matching defs:pool

387  * srp_destroy_fr_pool() - free the resources owned by a pool
388 * @pool: Fast registration pool to be destroyed.
390 static void srp_destroy_fr_pool(struct srp_fr_pool *pool)
395 if (!pool)
398 for (i = 0, d = &pool->desc[0]; i < pool->size; i++, d++) {
402 kfree(pool);
406 * srp_create_fr_pool() - allocate and initialize a pool for fast registration
416 struct srp_fr_pool *pool;
425 pool = kzalloc(struct_size(pool, desc, pool_size), GFP_KERNEL);
426 if (!pool)
428 pool->size = pool_size;
429 pool->max_page_list_len = max_page_list_len;
430 spin_lock_init(&pool->lock);
431 INIT_LIST_HEAD(&pool->free_list);
438 for (i = 0, d = &pool->desc[0]; i < pool->size; i++, d++) {
448 list_add_tail(&d->entry, &pool->free_list);
452 return pool;
455 srp_destroy_fr_pool(pool);
458 pool = ERR_PTR(ret);
464 * @pool: Pool to obtain descriptor from.
466 static struct srp_fr_desc *srp_fr_pool_get(struct srp_fr_pool *pool)
471 spin_lock_irqsave(&pool->lock, flags);
472 if (!list_empty(&pool->free_list)) {
473 d = list_first_entry(&pool->free_list, typeof(*d), entry);
476 spin_unlock_irqrestore(&pool->lock, flags);
483 * @pool: Pool the descriptor was allocated from.
490 static void srp_fr_pool_put(struct srp_fr_pool *pool, struct srp_fr_desc **desc,
496 spin_lock_irqsave(&pool->lock, flags);
498 list_add(&desc[i]->entry, &pool->free_list);
499 spin_unlock_irqrestore(&pool->lock, flags);
595 "FR pool allocation failed (%d)\n", ret);
1806 * Return an IU and possible credit to the free pool
3732 pr_warn("No MR pool and no external indirect descriptors, limiting sg_tablesize to cmd_sg_cnt\n");