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;
 
                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;
        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;
 
 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);