Lines Matching refs:pool
504 struct rtrs_rdma_dev_pd *pool)
506 WARN_ON(pool->ops && (!pool->ops->alloc ^ !pool->ops->free));
507 INIT_LIST_HEAD(&pool->list);
508 mutex_init(&pool->mutex);
509 pool->pd_flags = pd_flags;
513 void rtrs_rdma_dev_pd_deinit(struct rtrs_rdma_dev_pd *pool)
515 mutex_destroy(&pool->mutex);
516 WARN_ON(!list_empty(&pool->list));
522 struct rtrs_rdma_dev_pd *pool;
526 pool = dev->pool;
528 mutex_lock(&pool->mutex);
530 mutex_unlock(&pool->mutex);
532 if (pool->ops && pool->ops->deinit)
533 pool->ops->deinit(dev);
537 if (pool->ops && pool->ops->free)
538 pool->ops->free(dev);
556 struct rtrs_rdma_dev_pd *pool)
560 mutex_lock(&pool->mutex);
561 list_for_each_entry(dev, &pool->list, entry) {
566 mutex_unlock(&pool->mutex);
567 if (pool->ops && pool->ops->alloc)
568 dev = pool->ops->alloc();
575 dev->pool = pool;
577 dev->ib_pd = ib_alloc_pd(ib_dev, pool->pd_flags);
581 if (pool->ops && pool->ops->init && pool->ops->init(dev))
584 mutex_lock(&pool->mutex);
585 list_add(&dev->entry, &pool->list);
587 mutex_unlock(&pool->mutex);
593 if (pool->ops && pool->ops->free)
594 pool->ops->free(dev);