Skip to content

Commit ec1366c

Browse files
ozshlomoSaeed Mahameed
authored andcommitted
net/mlx5e: Store eswitch uplink representor state on a dedicated struct
Currently only a single field in the representor private structure is relevant for uplink representors. As a pre-step to allow adding additional uplink representor fields, introduce uplink representor private structure. This is prepration step towards replacing egdev logic with the indirect block notification mechanism. This patch doesn't change any functionality. Signed-off-by: Oz Shlomo <ozsh@mellanox.com> Reviewed-by: Eli Britstein <elibr@mellanox.com> Acked-by: Or Gerlitz <ogerlitz@mellanox.com> Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
1 parent 2f62747 commit ec1366c

File tree

3 files changed

+12
-5
lines changed

3 files changed

+12
-5
lines changed

drivers/net/ethernet/mellanox/mlx5/core/en_rep.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1244,7 +1244,7 @@ mlx5e_nic_rep_load(struct mlx5_core_dev *dev, struct mlx5_eswitch_rep *rep)
12441244
{
12451245
struct mlx5e_rep_priv *rpriv = mlx5e_rep_to_rep_priv(rep);
12461246
struct mlx5e_priv *priv = netdev_priv(rpriv->netdev);
1247-
1247+
struct mlx5_rep_uplink_priv *uplink_priv = &rpriv->uplink_priv;
12481248
int err;
12491249

12501250
if (test_bit(MLX5E_STATE_OPENED, &priv->state)) {
@@ -1258,7 +1258,7 @@ mlx5e_nic_rep_load(struct mlx5_core_dev *dev, struct mlx5_eswitch_rep *rep)
12581258
goto err_remove_sqs;
12591259

12601260
/* init shared tc flow table */
1261-
err = mlx5e_tc_esw_init(&rpriv->tc_ht);
1261+
err = mlx5e_tc_esw_init(&uplink_priv->tc_ht);
12621262
if (err)
12631263
goto err_neigh_cleanup;
12641264

@@ -1281,7 +1281,7 @@ mlx5e_nic_rep_unload(struct mlx5_eswitch_rep *rep)
12811281
mlx5e_remove_sqs_fwd_rules(priv);
12821282

12831283
/* clean uplink offloaded TC rules, delete shared tc flow table */
1284-
mlx5e_tc_esw_cleanup(&rpriv->tc_ht);
1284+
mlx5e_tc_esw_cleanup(&rpriv->uplink_priv.tc_ht);
12851285

12861286
mlx5e_rep_neigh_cleanup(rpriv);
12871287
}

drivers/net/ethernet/mellanox/mlx5/core/en_rep.h

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,20 @@ struct mlx5e_neigh_update_table {
5353
unsigned long min_interval; /* jiffies */
5454
};
5555

56+
struct mlx5_rep_uplink_priv {
57+
/* Filters DB - instantiated by the uplink representor and shared by
58+
* the uplink's VFs
59+
*/
60+
struct rhashtable tc_ht;
61+
};
62+
5663
struct mlx5e_rep_priv {
5764
struct mlx5_eswitch_rep *rep;
5865
struct mlx5e_neigh_update_table neigh_update;
5966
struct net_device *netdev;
6067
struct mlx5_flow_handle *vport_rx_rule;
6168
struct list_head vport_sqs_list;
62-
struct rhashtable tc_ht; /* valid for uplink rep */
69+
struct mlx5_rep_uplink_priv uplink_priv; /* valid for uplink rep */
6370
};
6471

6572
static inline

drivers/net/ethernet/mellanox/mlx5/core/en_tc.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3018,7 +3018,7 @@ static struct rhashtable *get_tc_ht(struct mlx5e_priv *priv)
30183018

30193019
if (MLX5_VPORT_MANAGER(priv->mdev) && esw->mode == SRIOV_OFFLOADS) {
30203020
uplink_rpriv = mlx5_eswitch_get_uplink_priv(esw, REP_ETH);
3021-
return &uplink_rpriv->tc_ht;
3021+
return &uplink_rpriv->uplink_priv.tc_ht;
30223022
} else
30233023
return &priv->fs.tc.ht;
30243024
}

0 commit comments

Comments
 (0)