Skip to content

Commit bf3d56d

Browse files
w1ldptrSaeed Mahameed
authored andcommitted
net/mlx5: Bridge, extract FDB delete notification to function
SWITCHDEV_FDB_DEL_TO_BRIDGE notification is generated in multiple places in bridge code. Following patch in series changes the condition for the notification. Extract the notification into dedicated helper function mlx5_esw_bridge_fdb_del_notify() to only modify it in single place in the future changes. Signed-off-by: Vlad Buslov <[email protected]> Reviewed-by: Roi Dayan <[email protected]> Reviewed-by: Mark Bloch <[email protected]> Signed-off-by: Saeed Mahameed <[email protected]>
1 parent 3ee6233 commit bf3d56d

File tree

1 file changed

+13
-14
lines changed
  • drivers/net/ethernet/mellanox/mlx5/core/esw

1 file changed

+13
-14
lines changed

drivers/net/ethernet/mellanox/mlx5/core/esw/bridge.c

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,15 @@ mlx5_esw_bridge_fdb_offload_notify(struct net_device *dev, const unsigned char *
7676
call_switchdev_notifiers(val, dev, &send_info.info, NULL);
7777
}
7878

79+
static void
80+
mlx5_esw_bridge_fdb_del_notify(struct mlx5_esw_bridge_fdb_entry *entry)
81+
{
82+
if (!(entry->flags & MLX5_ESW_BRIDGE_FLAG_ADDED_BY_USER))
83+
mlx5_esw_bridge_fdb_offload_notify(entry->dev, entry->key.addr,
84+
entry->key.vid,
85+
SWITCHDEV_FDB_DEL_TO_BRIDGE);
86+
}
87+
7988
static struct mlx5_flow_table *
8089
mlx5_esw_bridge_table_create(int max_fte, u32 level, struct mlx5_eswitch *esw)
8190
{
@@ -699,10 +708,7 @@ static void mlx5_esw_bridge_fdb_flush(struct mlx5_esw_bridge *bridge)
699708
struct mlx5_esw_bridge_fdb_entry *entry, *tmp;
700709

701710
list_for_each_entry_safe(entry, tmp, &bridge->fdb_list, list) {
702-
if (!(entry->flags & MLX5_ESW_BRIDGE_FLAG_ADDED_BY_USER))
703-
mlx5_esw_bridge_fdb_offload_notify(entry->dev, entry->key.addr,
704-
entry->key.vid,
705-
SWITCHDEV_FDB_DEL_TO_BRIDGE);
711+
mlx5_esw_bridge_fdb_del_notify(entry);
706712
mlx5_esw_bridge_fdb_entry_cleanup(entry, bridge);
707713
}
708714
}
@@ -850,10 +856,7 @@ static void mlx5_esw_bridge_vlan_flush(struct mlx5_esw_bridge_vlan *vlan,
850856
struct mlx5_esw_bridge_fdb_entry *entry, *tmp;
851857

852858
list_for_each_entry_safe(entry, tmp, &vlan->fdb_list, vlan_list) {
853-
if (!(entry->flags & MLX5_ESW_BRIDGE_FLAG_ADDED_BY_USER))
854-
mlx5_esw_bridge_fdb_offload_notify(entry->dev, entry->key.addr,
855-
entry->key.vid,
856-
SWITCHDEV_FDB_DEL_TO_BRIDGE);
859+
mlx5_esw_bridge_fdb_del_notify(entry);
857860
mlx5_esw_bridge_fdb_entry_cleanup(entry, bridge);
858861
}
859862

@@ -1241,9 +1244,7 @@ void mlx5_esw_bridge_fdb_remove(struct net_device *dev, u16 vport_num, u16 esw_o
12411244
return;
12421245
}
12431246

1244-
if (!(entry->flags & MLX5_ESW_BRIDGE_FLAG_ADDED_BY_USER))
1245-
mlx5_esw_bridge_fdb_offload_notify(dev, entry->key.addr, entry->key.vid,
1246-
SWITCHDEV_FDB_DEL_TO_BRIDGE);
1247+
mlx5_esw_bridge_fdb_del_notify(entry);
12471248
mlx5_esw_bridge_fdb_entry_cleanup(entry, bridge);
12481249
}
12491250

@@ -1263,9 +1264,7 @@ void mlx5_esw_bridge_update(struct mlx5_esw_bridge_offloads *br_offloads)
12631264
if (time_after(lastuse, entry->lastuse)) {
12641265
mlx5_esw_bridge_fdb_entry_refresh(lastuse, entry);
12651266
} else if (time_is_before_jiffies(entry->lastuse + bridge->ageing_time)) {
1266-
mlx5_esw_bridge_fdb_offload_notify(entry->dev, entry->key.addr,
1267-
entry->key.vid,
1268-
SWITCHDEV_FDB_DEL_TO_BRIDGE);
1267+
mlx5_esw_bridge_fdb_del_notify(entry);
12691268
mlx5_esw_bridge_fdb_entry_cleanup(entry, bridge);
12701269
}
12711270
}

0 commit comments

Comments
 (0)