src/dpdk/drivers/common/mlx5/mlx5_common_mr.c
void
mlx5_mr_free(struct mlx5_mr *mr, mlx5_dereg_mr_t dereg_mr_cb)
{
	if (mr == NULL)
		return;
	DRV_LOG(DEBUG, "freeing MR(%p):", (void *)mr);
	dereg_mr_cb(&mr->pmd_mr);
	if (mr->ms_bmp != NULL)
		rte_bitmap_free(mr->ms_bmp);
	mlx5_free(mr);
}
/**
 * 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.
 */
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.
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 .
void
mlx5_mr_free(struct mlx5_mr *mr, mlx5_dereg_mr_t dereg_mr_cb)
{
	if (mr == NULL)
		return;
	DRV_LOG(DEBUG, "freeing MR(%p):", (void *)mr);
	dereg_mr_cb(&mr->pmd_mr);
	if (mr->ms_bmp != NULL)
		rte_bitmap_free(mr->ms_bmp);
	mlx5_free(mr);
}
void mlx5_mr_free ( struct mlx5_mr * mr , mlx5_dereg_mr_t dereg_mr_cb ) { if ( mr == NULL ) return ; DRV_LOG ( DEBUG , " " , ( void * ) mr ) ; dereg_mr_cb ( & mr -> pmd_mr ) ; if ( mr -> ms_bmp != NULL ) rte_bitmap_free ( mr -> ms_bmp ) ; mlx5_free ( mr ) ; }
Free MR resources.
Free MR resources .