}
 
 static struct mlxsw_sp_lpm_tree *
-mlxsw_sp_lpm_tree_find_unused(struct mlxsw_sp *mlxsw_sp, bool one_reserved)
+mlxsw_sp_lpm_tree_find_unused(struct mlxsw_sp *mlxsw_sp)
 {
        static struct mlxsw_sp_lpm_tree *lpm_tree;
        int i;
 
        for (i = 0; i < MLXSW_SP_LPM_TREE_COUNT; i++) {
                lpm_tree = &mlxsw_sp->router.lpm_trees[i];
-               if (lpm_tree->ref_count == 0) {
-                       if (one_reserved)
-                               one_reserved = false;
-                       else
-                               return lpm_tree;
-               }
+               if (lpm_tree->ref_count == 0)
+                       return lpm_tree;
        }
        return NULL;
 }
 static struct mlxsw_sp_lpm_tree *
 mlxsw_sp_lpm_tree_create(struct mlxsw_sp *mlxsw_sp,
                         struct mlxsw_sp_prefix_usage *prefix_usage,
-                        enum mlxsw_sp_l3proto proto, bool one_reserved)
+                        enum mlxsw_sp_l3proto proto)
 {
        struct mlxsw_sp_lpm_tree *lpm_tree;
        int err;
 
-       lpm_tree = mlxsw_sp_lpm_tree_find_unused(mlxsw_sp, one_reserved);
+       lpm_tree = mlxsw_sp_lpm_tree_find_unused(mlxsw_sp);
        if (!lpm_tree)
                return ERR_PTR(-EBUSY);
        lpm_tree->proto = proto;
 static struct mlxsw_sp_lpm_tree *
 mlxsw_sp_lpm_tree_get(struct mlxsw_sp *mlxsw_sp,
                      struct mlxsw_sp_prefix_usage *prefix_usage,
-                     enum mlxsw_sp_l3proto proto, bool one_reserved)
+                     enum mlxsw_sp_l3proto proto)
 {
        struct mlxsw_sp_lpm_tree *lpm_tree;
        int i;
                        goto inc_ref_count;
        }
        lpm_tree = mlxsw_sp_lpm_tree_create(mlxsw_sp, prefix_usage,
-                                           proto, one_reserved);
+                                           proto);
        if (IS_ERR(lpm_tree))
                return lpm_tree;
 
        mlxsw_sp_prefix_usage_zero(&req_prefix_usage);
        mlxsw_sp_prefix_usage_set(&req_prefix_usage, prefix_len);
        lpm_tree = mlxsw_sp_lpm_tree_get(mlxsw_sp, &req_prefix_usage,
-                                        proto, true);
+                                        proto);
        if (IS_ERR(lpm_tree)) {
                err = PTR_ERR(lpm_tree);
                goto err_tree_get;
                return 0;
 
        new_tree = mlxsw_sp_lpm_tree_get(mlxsw_sp, req_prefix_usage,
-                                        vr->proto, false);
+                                        vr->proto);
        if (IS_ERR(new_tree)) {
                /* We failed to get a tree according to the required
                 * prefix usage. However, the current tree might be still good