Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma
[linux-block.git] / drivers / infiniband / sw / rxe / rxe_pool.c
index 1151c0b5cceaba60311d4ce91da85c69c7701eee..6215c6de3a8408b9b9a304a1e1efa07f9d1a3630 100644 (file)
@@ -116,55 +116,12 @@ void rxe_pool_cleanup(struct rxe_pool *pool)
        WARN_ON(!xa_empty(&pool->xa));
 }
 
-void *rxe_alloc(struct rxe_pool *pool)
-{
-       struct rxe_pool_elem *elem;
-       void *obj;
-       int err;
-
-       if (WARN_ON(!(pool->type == RXE_TYPE_MR)))
-               return NULL;
-
-       if (atomic_inc_return(&pool->num_elem) > pool->max_elem)
-               goto err_cnt;
-
-       obj = kzalloc(pool->elem_size, GFP_KERNEL);
-       if (!obj)
-               goto err_cnt;
-
-       elem = (struct rxe_pool_elem *)((u8 *)obj + pool->elem_offset);
-
-       elem->pool = pool;
-       elem->obj = obj;
-       kref_init(&elem->ref_cnt);
-       init_completion(&elem->complete);
-
-       /* allocate index in array but leave pointer as NULL so it
-        * can't be looked up until rxe_finalize() is called
-        */
-       err = xa_alloc_cyclic(&pool->xa, &elem->index, NULL, pool->limit,
-                             &pool->next, GFP_KERNEL);
-       if (err < 0)
-               goto err_free;
-
-       return obj;
-
-err_free:
-       kfree(obj);
-err_cnt:
-       atomic_dec(&pool->num_elem);
-       return NULL;
-}
-
 int __rxe_add_to_pool(struct rxe_pool *pool, struct rxe_pool_elem *elem,
                                bool sleepable)
 {
        int err;
        gfp_t gfp_flags;
 
-       if (WARN_ON(pool->type == RXE_TYPE_MR))
-               return -EINVAL;
-
        if (atomic_inc_return(&pool->num_elem) > pool->max_elem)
                goto err_cnt;
 
@@ -275,9 +232,6 @@ int __rxe_cleanup(struct rxe_pool_elem *elem, bool sleepable)
        if (pool->cleanup)
                pool->cleanup(elem);
 
-       if (pool->type == RXE_TYPE_MR)
-               kfree_rcu(elem->obj);
-
        atomic_dec(&pool->num_elem);
 
        return err;