lpm_tree          146 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c static void mlxsw_sp_lpm_tree_hold(struct mlxsw_sp_lpm_tree *lpm_tree);
lpm_tree          148 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 				  struct mlxsw_sp_lpm_tree *lpm_tree);
lpm_tree          435 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	struct mlxsw_sp_lpm_tree *lpm_tree;
lpm_tree          456 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	struct mlxsw_sp_lpm_tree *lpm_tree;
lpm_tree          460 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	lpm_tree = mlxsw_sp->router->lpm.proto_trees[proto];
lpm_tree          470 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	fib->lpm_tree = lpm_tree;
lpm_tree          471 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	mlxsw_sp_lpm_tree_hold(lpm_tree);
lpm_tree          472 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	err = mlxsw_sp_vr_lpm_tree_bind(mlxsw_sp, fib, lpm_tree->id);
lpm_tree          478 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	mlxsw_sp_lpm_tree_put(mlxsw_sp, lpm_tree);
lpm_tree          488 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	mlxsw_sp_lpm_tree_put(mlxsw_sp, fib->lpm_tree);
lpm_tree          497 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	static struct mlxsw_sp_lpm_tree *lpm_tree;
lpm_tree          501 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 		lpm_tree = &mlxsw_sp->router->lpm.trees[i];
lpm_tree          502 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 		if (lpm_tree->ref_count == 0)
lpm_tree          503 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 			return lpm_tree;
lpm_tree          509 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 				   struct mlxsw_sp_lpm_tree *lpm_tree)
lpm_tree          514 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 			     (enum mlxsw_reg_ralxx_protocol) lpm_tree->proto,
lpm_tree          515 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 			     lpm_tree->id);
lpm_tree          520 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 				   struct mlxsw_sp_lpm_tree *lpm_tree)
lpm_tree          525 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 			     (enum mlxsw_reg_ralxx_protocol) lpm_tree->proto,
lpm_tree          526 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 			     lpm_tree->id);
lpm_tree          533 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 				  struct mlxsw_sp_lpm_tree *lpm_tree)
lpm_tree          543 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	mlxsw_reg_ralst_pack(ralst_pl, root_bin, lpm_tree->id);
lpm_tree          559 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	struct mlxsw_sp_lpm_tree *lpm_tree;
lpm_tree          562 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	lpm_tree = mlxsw_sp_lpm_tree_find_unused(mlxsw_sp);
lpm_tree          563 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	if (!lpm_tree)
lpm_tree          565 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	lpm_tree->proto = proto;
lpm_tree          566 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	err = mlxsw_sp_lpm_tree_alloc(mlxsw_sp, lpm_tree);
lpm_tree          571 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 						lpm_tree);
lpm_tree          574 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	memcpy(&lpm_tree->prefix_usage, prefix_usage,
lpm_tree          575 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	       sizeof(lpm_tree->prefix_usage));
lpm_tree          576 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	memset(&lpm_tree->prefix_ref_count, 0,
lpm_tree          577 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	       sizeof(lpm_tree->prefix_ref_count));
lpm_tree          578 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	lpm_tree->ref_count = 1;
lpm_tree          579 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	return lpm_tree;
lpm_tree          582 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	mlxsw_sp_lpm_tree_free(mlxsw_sp, lpm_tree);
lpm_tree          587 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 				      struct mlxsw_sp_lpm_tree *lpm_tree)
lpm_tree          589 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	mlxsw_sp_lpm_tree_free(mlxsw_sp, lpm_tree);
lpm_tree          597 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	struct mlxsw_sp_lpm_tree *lpm_tree;
lpm_tree          601 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 		lpm_tree = &mlxsw_sp->router->lpm.trees[i];
lpm_tree          602 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 		if (lpm_tree->ref_count != 0 &&
lpm_tree          603 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 		    lpm_tree->proto == proto &&
lpm_tree          604 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 		    mlxsw_sp_prefix_usage_eq(&lpm_tree->prefix_usage,
lpm_tree          606 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 			mlxsw_sp_lpm_tree_hold(lpm_tree);
lpm_tree          607 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 			return lpm_tree;
lpm_tree          613 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c static void mlxsw_sp_lpm_tree_hold(struct mlxsw_sp_lpm_tree *lpm_tree)
lpm_tree          615 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	lpm_tree->ref_count++;
lpm_tree          619 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 				  struct mlxsw_sp_lpm_tree *lpm_tree)
lpm_tree          621 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	if (--lpm_tree->ref_count == 0)
lpm_tree          622 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 		mlxsw_sp_lpm_tree_destroy(mlxsw_sp, lpm_tree);
lpm_tree          630 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	struct mlxsw_sp_lpm_tree *lpm_tree;
lpm_tree          646 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 		lpm_tree = &mlxsw_sp->router->lpm.trees[i];
lpm_tree          647 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 		lpm_tree->id = i + MLXSW_SP_LPM_TREE_MIN;
lpm_tree          650 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	lpm_tree = mlxsw_sp_lpm_tree_get(mlxsw_sp, &req_prefix_usage,
lpm_tree          652 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	if (IS_ERR(lpm_tree)) {
lpm_tree          653 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 		err = PTR_ERR(lpm_tree);
lpm_tree          656 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	mlxsw_sp->router->lpm.proto_trees[MLXSW_SP_L3_PROTO_IPV4] = lpm_tree;
lpm_tree          658 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	lpm_tree = mlxsw_sp_lpm_tree_get(mlxsw_sp, &req_prefix_usage,
lpm_tree          660 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	if (IS_ERR(lpm_tree)) {
lpm_tree          661 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 		err = PTR_ERR(lpm_tree);
lpm_tree          664 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	mlxsw_sp->router->lpm.proto_trees[MLXSW_SP_L3_PROTO_IPV6] = lpm_tree;
lpm_tree          669 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	lpm_tree = mlxsw_sp->router->lpm.proto_trees[MLXSW_SP_L3_PROTO_IPV4];
lpm_tree          670 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	mlxsw_sp_lpm_tree_put(mlxsw_sp, lpm_tree);
lpm_tree          678 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	struct mlxsw_sp_lpm_tree *lpm_tree;
lpm_tree          680 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	lpm_tree = mlxsw_sp->router->lpm.proto_trees[MLXSW_SP_L3_PROTO_IPV6];
lpm_tree          681 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	mlxsw_sp_lpm_tree_put(mlxsw_sp, lpm_tree);
lpm_tree          683 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	lpm_tree = mlxsw_sp->router->lpm.proto_trees[MLXSW_SP_L3_PROTO_IPV4];
lpm_tree          684 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	mlxsw_sp_lpm_tree_put(mlxsw_sp, lpm_tree);
lpm_tree          874 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	if (fib->lpm_tree->id == tree_id)
lpm_tree          883 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	struct mlxsw_sp_lpm_tree *old_tree = fib->lpm_tree;
lpm_tree          886 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	fib->lpm_tree = new_tree;
lpm_tree          896 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	fib->lpm_tree = old_tree;
lpm_tree         4537 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	struct mlxsw_sp_lpm_tree *lpm_tree;
lpm_tree         4540 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	lpm_tree = mlxsw_sp->router->lpm.proto_trees[fib->proto];
lpm_tree         4541 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	if (lpm_tree->prefix_ref_count[fib_node->key.prefix_len] != 0)
lpm_tree         4544 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	mlxsw_sp_prefix_usage_cpy(&req_prefix_usage, &lpm_tree->prefix_usage);
lpm_tree         4546 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	lpm_tree = mlxsw_sp_lpm_tree_get(mlxsw_sp, &req_prefix_usage,
lpm_tree         4548 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	if (IS_ERR(lpm_tree))
lpm_tree         4549 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 		return PTR_ERR(lpm_tree);
lpm_tree         4551 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	err = mlxsw_sp_vrs_lpm_tree_replace(mlxsw_sp, fib, lpm_tree);
lpm_tree         4556 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	lpm_tree->prefix_ref_count[fib_node->key.prefix_len]++;
lpm_tree         4560 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	mlxsw_sp_lpm_tree_put(mlxsw_sp, lpm_tree);
lpm_tree         4567 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	struct mlxsw_sp_lpm_tree *lpm_tree = fib_node->fib->lpm_tree;
lpm_tree         4572 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	if (--lpm_tree->prefix_ref_count[fib_node->key.prefix_len] != 0)
lpm_tree         4577 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	mlxsw_sp_prefix_usage_cpy(&req_prefix_usage, &lpm_tree->prefix_usage);
lpm_tree         4580 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	lpm_tree = mlxsw_sp_lpm_tree_get(mlxsw_sp, &req_prefix_usage,
lpm_tree         4582 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	if (IS_ERR(lpm_tree))
lpm_tree         4585 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	err = mlxsw_sp_vrs_lpm_tree_replace(mlxsw_sp, fib, lpm_tree);
lpm_tree         4592 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 	mlxsw_sp_lpm_tree_put(mlxsw_sp, lpm_tree);