Lines Matching refs:mca
11 * struct rxe_mca ('mca'). An mcg is allocated each time a qp is
17 * mca is created. It holds a pointer to the qp and is added to a list
284 * __rxe_init_mca - initialize a new mca holding lock
287 * @mca: empty space for new mca
290 * and pass memory for new mca
295 struct rxe_mca *mca)
316 mca->qp = qp;
318 list_add_tail(&mca->qp_list, &mcg->qp_list);
334 struct rxe_mca *mca, *tmp;
339 list_for_each_entry(mca, &mcg->qp_list, qp_list) {
340 if (mca->qp == qp) {
347 /* speculative alloc new mca without using GFP_ATOMIC */
348 mca = kzalloc(sizeof(*mca), GFP_KERNEL);
349 if (!mca)
356 kfree(mca);
362 err = __rxe_init_mca(qp, mcg, mca);
364 kfree(mca);
371 * __rxe_cleanup_mca - cleanup mca object holding lock
372 * @mca: mca object
377 static void __rxe_cleanup_mca(struct rxe_mca *mca, struct rxe_mcg *mcg)
379 list_del(&mca->qp_list);
383 atomic_dec(&mca->qp->mcg_num);
384 rxe_put(mca->qp);
386 kfree(mca);
399 struct rxe_mca *mca, *tmp;
402 list_for_each_entry_safe(mca, tmp, &mcg->qp_list, qp_list) {
403 if (mca->qp == qp) {
404 __rxe_cleanup_mca(mca, mcg);