icm_mr            103 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_icm_pool.c 	struct mlx5dr_icm_mr *icm_mr;
icm_mr            107 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_icm_pool.c 	icm_mr = kvzalloc(sizeof(*icm_mr), GFP_KERNEL);
icm_mr            108 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_icm_pool.c 	if (!icm_mr)
icm_mr            111 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_icm_pool.c 	icm_mr->pool = pool;
icm_mr            112 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_icm_pool.c 	INIT_LIST_HEAD(&icm_mr->mr_list);
icm_mr            114 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_icm_pool.c 	icm_mr->dm.type = type;
icm_mr            117 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_icm_pool.c 	icm_mr->dm.length = mlx5dr_icm_pool_chunk_size_to_byte(pool->max_log_chunk_sz,
icm_mr            120 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_icm_pool.c 	err = mlx5_dm_sw_icm_alloc(mdev, icm_mr->dm.type, icm_mr->dm.length, 0,
icm_mr            121 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_icm_pool.c 				   &icm_mr->dm.addr, &icm_mr->dm.obj_id);
icm_mr            129 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_icm_pool.c 				    icm_mr->dm.length,
icm_mr            130 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_icm_pool.c 				    icm_mr->dm.addr,
icm_mr            132 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_icm_pool.c 				    &icm_mr->mkey);
icm_mr            138 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_icm_pool.c 	icm_mr->icm_start_addr = icm_mr->dm.addr;
icm_mr            141 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_icm_pool.c 	align_diff = icm_mr->icm_start_addr & (align_base - 1);
icm_mr            143 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_icm_pool.c 		icm_mr->used_length = align_base - align_diff;
icm_mr            145 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_icm_pool.c 	list_add_tail(&icm_mr->mr_list, &pool->icm_mr_list);
icm_mr            147 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_icm_pool.c 	return icm_mr;
icm_mr            150 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_icm_pool.c 	mlx5_dm_sw_icm_dealloc(mdev, icm_mr->dm.type, icm_mr->dm.length, 0,
icm_mr            151 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_icm_pool.c 			       icm_mr->dm.addr, icm_mr->dm.obj_id);
icm_mr            153 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_icm_pool.c 	kvfree(icm_mr);
icm_mr            157 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_icm_pool.c static void dr_icm_pool_mr_destroy(struct mlx5dr_icm_mr *icm_mr)
icm_mr            159 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_icm_pool.c 	struct mlx5_core_dev *mdev = icm_mr->pool->dmn->mdev;
icm_mr            160 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_icm_pool.c 	struct mlx5dr_icm_dm *dm = &icm_mr->dm;
icm_mr            162 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_icm_pool.c 	list_del(&icm_mr->mr_list);
icm_mr            163 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_icm_pool.c 	mlx5_core_destroy_mkey(mdev, &icm_mr->mkey);
icm_mr            166 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_icm_pool.c 	kvfree(icm_mr);
icm_mr            201 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_icm_pool.c 	struct mlx5dr_icm_mr *icm_mr = NULL;
icm_mr            223 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_icm_pool.c 		icm_mr = list_last_entry(&pool->icm_mr_list,
icm_mr            226 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_icm_pool.c 		if (icm_mr)
icm_mr            227 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_icm_pool.c 			mr_free_size = icm_mr->dm.length - icm_mr->used_length;
icm_mr            230 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_icm_pool.c 	if (!icm_mr || mr_free_size < mr_row_size) {
icm_mr            231 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_icm_pool.c 		icm_mr = dr_icm_pool_mr_create(pool, dm_type, align_base);
icm_mr            232 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_icm_pool.c 		if (!icm_mr) {
icm_mr            247 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_icm_pool.c 		chunk->rkey = icm_mr->mkey.key;
icm_mr            249 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_icm_pool.c 		chunk->mr_addr = icm_mr->used_length;
icm_mr            250 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_icm_pool.c 		chunk->icm_addr = (uintptr_t)icm_mr->icm_start_addr + icm_mr->used_length;
icm_mr            251 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_icm_pool.c 		icm_mr->used_length += mr_req_size;
icm_mr            558 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_icm_pool.c 	struct mlx5dr_icm_mr *icm_mr, *next;
icm_mr            563 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_icm_pool.c 	list_for_each_entry_safe(icm_mr, next, &pool->icm_mr_list, mr_list)
icm_mr            564 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_icm_pool.c 		dr_icm_pool_mr_destroy(icm_mr);