* Free MR resources. MR lock must not be held to avoid a deadlock. rte_free() * can raise memory free event and the callback function will spin on the lock. * * @param mr * Pointer to MR to free. */
| 464 | * Pointer to MR to free. |
| 465 | */ |
| 466 | static void |
| 467 | mr_free(struct mlx4_mr *mr) |
| 468 | { |
| 469 | if (mr == NULL) |
| 470 | return; |
| 471 | DEBUG("freeing MR(%p):", (void *)mr); |
| 472 | if (mr->ibv_mr != NULL) |
| 473 | claim_zero(mlx4_glue->dereg_mr(mr->ibv_mr)); |
| 474 | rte_bitmap_free(mr->ms_bmp); |
| 475 | rte_free(mr); |
| 476 | } |
| 477 | |
| 478 | /** |
| 479 | * Release resources of detached MR having no online entry. |
no test coverage detected