Lines Matching refs:res_cb
199 static int erdma_alloc_idx(struct erdma_resource_cb *res_cb) in erdma_alloc_idx() argument
204 spin_lock_irqsave(&res_cb->lock, flags); in erdma_alloc_idx()
205 idx = find_next_zero_bit(res_cb->bitmap, res_cb->max_cap, in erdma_alloc_idx()
206 res_cb->next_alloc_idx); in erdma_alloc_idx()
207 if (idx == res_cb->max_cap) { in erdma_alloc_idx()
208 idx = find_first_zero_bit(res_cb->bitmap, res_cb->max_cap); in erdma_alloc_idx()
209 if (idx == res_cb->max_cap) { in erdma_alloc_idx()
210 res_cb->next_alloc_idx = 1; in erdma_alloc_idx()
211 spin_unlock_irqrestore(&res_cb->lock, flags); in erdma_alloc_idx()
216 set_bit(idx, res_cb->bitmap); in erdma_alloc_idx()
217 res_cb->next_alloc_idx = idx + 1; in erdma_alloc_idx()
218 spin_unlock_irqrestore(&res_cb->lock, flags); in erdma_alloc_idx()
223 static inline void erdma_free_idx(struct erdma_resource_cb *res_cb, u32 idx) in erdma_free_idx() argument
228 spin_lock_irqsave(&res_cb->lock, flags); in erdma_free_idx()
229 used = __test_and_clear_bit(idx, res_cb->bitmap); in erdma_free_idx()
230 spin_unlock_irqrestore(&res_cb->lock, flags); in erdma_free_idx()
363 pdn = erdma_alloc_idx(&dev->res_cb[ERDMA_RES_TYPE_PD]); in erdma_alloc_pd()
377 erdma_free_idx(&dev->res_cb[ERDMA_RES_TYPE_PD], pd->pdn); in erdma_dealloc_pd()
778 stag_idx = erdma_alloc_idx(&dev->res_cb[ERDMA_RES_TYPE_STAG_IDX]); in erdma_create_stag()
816 erdma_free_idx(&dev->res_cb[ERDMA_RES_TYPE_STAG_IDX], in erdma_get_dma_mr()
887 erdma_free_idx(&dev->res_cb[ERDMA_RES_TYPE_STAG_IDX], in erdma_ib_alloc_mr()
962 erdma_free_idx(&dev->res_cb[ERDMA_RES_TYPE_STAG_IDX], in erdma_reg_user_mr()
993 erdma_free_idx(&dev->res_cb[ERDMA_RES_TYPE_STAG_IDX], ibmr->lkey >> 8); in erdma_dereg_mr()