提交 bac9b6aa 编写于 作者: O Or Gerlitz 提交者: David S. Miller

net/mlx5: E-Switch, Set vport representor fields explicitly on registration

The structure we use for the eswitch vport representor (mlx5_eswitch_rep)
has some fields which are set from upper layers in the driver when they
register the rep. Use explicit setting on registration time for them and
avoid global memcpy. This patch doesn't add new functionality.
Signed-off-by: NOr Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: NSaeed Mahameed <saeedm@mellanox.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 9deb2241
...@@ -178,11 +178,12 @@ struct mlx5_eswitch_rep { ...@@ -178,11 +178,12 @@ struct mlx5_eswitch_rep {
void (*unload)(struct mlx5_eswitch *esw, void (*unload)(struct mlx5_eswitch *esw,
struct mlx5_eswitch_rep *rep); struct mlx5_eswitch_rep *rep);
u16 vport; u16 vport;
struct mlx5_flow_rule *vport_rx_rule; u8 hw_id[ETH_ALEN];
void *priv_data; void *priv_data;
struct mlx5_flow_rule *vport_rx_rule;
struct list_head vport_sqs_list; struct list_head vport_sqs_list;
bool valid; bool valid;
u8 hw_id[ETH_ALEN];
}; };
struct mlx5_esw_offload { struct mlx5_esw_offload {
......
...@@ -624,7 +624,13 @@ void mlx5_eswitch_register_vport_rep(struct mlx5_eswitch *esw, ...@@ -624,7 +624,13 @@ void mlx5_eswitch_register_vport_rep(struct mlx5_eswitch *esw,
rep = &offloads->vport_reps[vport_index]; rep = &offloads->vport_reps[vport_index];
memcpy(rep, __rep, sizeof(struct mlx5_eswitch_rep)); memset(rep, 0, sizeof(*rep));
rep->load = __rep->load;
rep->unload = __rep->unload;
rep->vport = __rep->vport;
rep->priv_data = __rep->priv_data;
ether_addr_copy(rep->hw_id, __rep->hw_id);
INIT_LIST_HEAD(&rep->vport_sqs_list); INIT_LIST_HEAD(&rep->vport_sqs_list);
rep->valid = true; rep->valid = true;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册