diff options
author | Bob Pearson <rpearsonhpe@gmail.com> | 2021-01-25 15:16:41 -0600 |
---|---|---|
committer | Jason Gunthorpe <jgg@nvidia.com> | 2021-01-28 15:29:56 -0400 |
commit | ce2063e3872b849421c6135881b1a6fb16d9eab7 (patch) | |
tree | a6a9f958ace76759e15e52ab4a74a762284c759b /drivers/infiniband | |
parent | eae5f0642e2f6a07a73f3fd60ecfeae9b4b32d5c (diff) |
RDMA/rxe: Replace missing rxe_pool_get_index_locked
One of the pool APIs for when caller is holding lock was not defined but
is declared in rxe_pool.h. This patch adds the definition.
Link: https://lore.kernel.org/r/20210125211641.2694-7-rpearson@hpe.com
Signed-off-by: Bob Pearson <rpearson@hpe.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Diffstat (limited to 'drivers/infiniband')
-rw-r--r-- | drivers/infiniband/sw/rxe/rxe_pool.c | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/drivers/infiniband/sw/rxe/rxe_pool.c b/drivers/infiniband/sw/rxe/rxe_pool.c index 5aa835028460..307d8986e7c9 100644 --- a/drivers/infiniband/sw/rxe/rxe_pool.c +++ b/drivers/infiniband/sw/rxe/rxe_pool.c @@ -398,15 +398,12 @@ void rxe_elem_release(struct kref *kref) atomic_dec(&pool->num_elem); } -void *rxe_pool_get_index(struct rxe_pool *pool, u32 index) +void *rxe_pool_get_index_locked(struct rxe_pool *pool, u32 index) { struct rxe_type_info *info = &rxe_type_info[pool->type]; struct rb_node *node; struct rxe_pool_entry *elem; - u8 *obj = NULL; - unsigned long flags; - - read_lock_irqsave(&pool->pool_lock, flags); + u8 *obj; node = pool->index.tree.rb_node; @@ -428,6 +425,16 @@ void *rxe_pool_get_index(struct rxe_pool *pool, u32 index) obj = NULL; } + return obj; +} + +void *rxe_pool_get_index(struct rxe_pool *pool, u32 index) +{ + u8 *obj; + unsigned long flags; + + read_lock_irqsave(&pool->pool_lock, flags); + obj = rxe_pool_get_index_locked(pool, index); read_unlock_irqrestore(&pool->pool_lock, flags); return obj; @@ -438,7 +445,7 @@ void *rxe_pool_get_key_locked(struct rxe_pool *pool, void *key) struct rxe_type_info *info = &rxe_type_info[pool->type]; struct rb_node *node; struct rxe_pool_entry *elem; - u8 *obj = NULL; + u8 *obj; int cmp; node = pool->key.tree.rb_node; @@ -469,7 +476,7 @@ void *rxe_pool_get_key_locked(struct rxe_pool *pool, void *key) void *rxe_pool_get_key(struct rxe_pool *pool, void *key) { - u8 *obj = NULL; + u8 *obj; unsigned long flags; read_lock_irqsave(&pool->pool_lock, flags); |