Commit fca08661 authored by Roi Dayan's avatar Roi Dayan Committed by Saeed Mahameed

net/mlx5: Fix err prints and return when creating termination table

Fix print to print correct error code and not using IS_ERR() which
will just result in always printing 1.
Also return real err instead of always -EOPNOTSUPP.

Fixes: 10caabda ("net/mlx5e: Use termination table for VLAN push actions")
Signed-off-by: default avatarRoi Dayan <roid@nvidia.com>
Reviewed-by: default avatarMaor Dickman <maord@nvidia.com>
Signed-off-by: default avatarSaeed Mahameed <saeedm@nvidia.com>
parent 442b3d7b
...@@ -65,7 +65,7 @@ mlx5_eswitch_termtbl_create(struct mlx5_core_dev *dev, ...@@ -65,7 +65,7 @@ mlx5_eswitch_termtbl_create(struct mlx5_core_dev *dev,
{ {
struct mlx5_flow_table_attr ft_attr = {}; struct mlx5_flow_table_attr ft_attr = {};
struct mlx5_flow_namespace *root_ns; struct mlx5_flow_namespace *root_ns;
int err; int err, err2;
root_ns = mlx5_get_flow_namespace(dev, MLX5_FLOW_NAMESPACE_FDB); root_ns = mlx5_get_flow_namespace(dev, MLX5_FLOW_NAMESPACE_FDB);
if (!root_ns) { if (!root_ns) {
...@@ -83,26 +83,26 @@ mlx5_eswitch_termtbl_create(struct mlx5_core_dev *dev, ...@@ -83,26 +83,26 @@ mlx5_eswitch_termtbl_create(struct mlx5_core_dev *dev,
ft_attr.autogroup.max_num_groups = 1; ft_attr.autogroup.max_num_groups = 1;
tt->termtbl = mlx5_create_auto_grouped_flow_table(root_ns, &ft_attr); tt->termtbl = mlx5_create_auto_grouped_flow_table(root_ns, &ft_attr);
if (IS_ERR(tt->termtbl)) { if (IS_ERR(tt->termtbl)) {
esw_warn(dev, "Failed to create termination table (error %d)\n", err = PTR_ERR(tt->termtbl);
IS_ERR(tt->termtbl)); esw_warn(dev, "Failed to create termination table, err %pe\n", tt->termtbl);
return -EOPNOTSUPP; return err;
} }
tt->rule = mlx5_add_flow_rules(tt->termtbl, NULL, flow_act, tt->rule = mlx5_add_flow_rules(tt->termtbl, NULL, flow_act,
&tt->dest, 1); &tt->dest, 1);
if (IS_ERR(tt->rule)) { if (IS_ERR(tt->rule)) {
esw_warn(dev, "Failed to create termination table rule (error %d)\n", err = PTR_ERR(tt->rule);
IS_ERR(tt->rule)); esw_warn(dev, "Failed to create termination table rule, err %pe\n", tt->rule);
goto add_flow_err; goto add_flow_err;
} }
return 0; return 0;
add_flow_err: add_flow_err:
err = mlx5_destroy_flow_table(tt->termtbl); err2 = mlx5_destroy_flow_table(tt->termtbl);
if (err) if (err2)
esw_warn(dev, "Failed to destroy termination table\n"); esw_warn(dev, "Failed to destroy termination table, err %d\n", err2);
return -EOPNOTSUPP; return err;
} }
static struct mlx5_termtbl_handle * static struct mlx5_termtbl_handle *
...@@ -270,8 +270,7 @@ mlx5_eswitch_add_termtbl_rule(struct mlx5_eswitch *esw, ...@@ -270,8 +270,7 @@ mlx5_eswitch_add_termtbl_rule(struct mlx5_eswitch *esw,
tt = mlx5_eswitch_termtbl_get_create(esw, &term_tbl_act, tt = mlx5_eswitch_termtbl_get_create(esw, &term_tbl_act,
&dest[i], attr); &dest[i], attr);
if (IS_ERR(tt)) { if (IS_ERR(tt)) {
esw_warn(esw->dev, "Failed to get termination table (error %d)\n", esw_warn(esw->dev, "Failed to get termination table, err %pe\n", tt);
IS_ERR(tt));
goto revert_changes; goto revert_changes;
} }
attr->dests[num_vport_dests].termtbl = tt; attr->dests[num_vport_dests].termtbl = tt;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment