Skip to content

Commit 97f87e5

Browse files
committed
Merge branch 'mlx5-misc-fixes-2026-02-24'
Tariq Toukan says: ==================== mlx5 misc fixes 2026-02-24 This patchset provides misc bug fixes from the team to the mlx5 core and Eth drivers. ==================== Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
2 parents 6668c6f + 8593806 commit 97f87e5

7 files changed

Lines changed: 22 additions & 10 deletions

File tree

drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,6 @@ static void mlx5e_ipsec_init_limits(struct mlx5e_ipsec_sa_entry *sa_entry,
259259
static void mlx5e_ipsec_init_macs(struct mlx5e_ipsec_sa_entry *sa_entry,
260260
struct mlx5_accel_esp_xfrm_attrs *attrs)
261261
{
262-
struct mlx5_core_dev *mdev = mlx5e_ipsec_sa2dev(sa_entry);
263262
struct mlx5e_ipsec_addr *addrs = &attrs->addrs;
264263
struct net_device *netdev = sa_entry->dev;
265264
struct xfrm_state *x = sa_entry->x;
@@ -276,7 +275,7 @@ static void mlx5e_ipsec_init_macs(struct mlx5e_ipsec_sa_entry *sa_entry,
276275
attrs->type != XFRM_DEV_OFFLOAD_PACKET)
277276
return;
278277

279-
mlx5_query_mac_address(mdev, addr);
278+
ether_addr_copy(addr, netdev->dev_addr);
280279
switch (attrs->dir) {
281280
case XFRM_DEV_OFFLOAD_IN:
282281
src = attrs->dmac;

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4068,6 +4068,8 @@ int mlx5_devlink_eswitch_mode_set(struct devlink *devlink, u16 mode,
40684068

40694069
if (mlx5_mode == MLX5_ESWITCH_LEGACY)
40704070
esw->dev->priv.flags |= MLX5_PRIV_FLAGS_SWITCH_LEGACY;
4071+
if (mlx5_mode == MLX5_ESWITCH_OFFLOADS)
4072+
esw->dev->priv.flags &= ~MLX5_PRIV_FLAGS_SWITCH_LEGACY;
40714073
mlx5_eswitch_disable_locked(esw);
40724074
if (mlx5_mode == MLX5_ESWITCH_OFFLOADS) {
40734075
if (mlx5_devlink_trap_get_num_active(esw->dev)) {

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1869,8 +1869,12 @@ void mlx5_lag_disable_change(struct mlx5_core_dev *dev)
18691869
mutex_lock(&ldev->lock);
18701870

18711871
ldev->mode_changes_in_progress++;
1872-
if (__mlx5_lag_is_active(ldev))
1873-
mlx5_disable_lag(ldev);
1872+
if (__mlx5_lag_is_active(ldev)) {
1873+
if (ldev->mode == MLX5_LAG_MODE_MPESW)
1874+
mlx5_lag_disable_mpesw(ldev);
1875+
else
1876+
mlx5_disable_lag(ldev);
1877+
}
18741878

18751879
mutex_unlock(&ldev->lock);
18761880
mlx5_devcom_comp_unlock(dev->priv.hca_devcom_comp);

drivers/net/ethernet/mellanox/mlx5/core/lag/mpesw.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ static int mlx5_mpesw_metadata_set(struct mlx5_lag *ldev)
6565
return err;
6666
}
6767

68-
static int enable_mpesw(struct mlx5_lag *ldev)
68+
static int mlx5_lag_enable_mpesw(struct mlx5_lag *ldev)
6969
{
7070
struct mlx5_core_dev *dev0;
7171
int err;
@@ -126,7 +126,7 @@ static int enable_mpesw(struct mlx5_lag *ldev)
126126
return err;
127127
}
128128

129-
static void disable_mpesw(struct mlx5_lag *ldev)
129+
void mlx5_lag_disable_mpesw(struct mlx5_lag *ldev)
130130
{
131131
if (ldev->mode == MLX5_LAG_MODE_MPESW) {
132132
mlx5_mpesw_metadata_cleanup(ldev);
@@ -152,9 +152,9 @@ static void mlx5_mpesw_work(struct work_struct *work)
152152
}
153153

154154
if (mpesww->op == MLX5_MPESW_OP_ENABLE)
155-
mpesww->result = enable_mpesw(ldev);
155+
mpesww->result = mlx5_lag_enable_mpesw(ldev);
156156
else if (mpesww->op == MLX5_MPESW_OP_DISABLE)
157-
disable_mpesw(ldev);
157+
mlx5_lag_disable_mpesw(ldev);
158158
unlock:
159159
mutex_unlock(&ldev->lock);
160160
mlx5_devcom_comp_unlock(devcom);

drivers/net/ethernet/mellanox/mlx5/core/lag/mpesw.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,11 @@ int mlx5_lag_mpesw_do_mirred(struct mlx5_core_dev *mdev,
3131
bool mlx5_lag_is_mpesw(struct mlx5_core_dev *dev);
3232
void mlx5_lag_mpesw_disable(struct mlx5_core_dev *dev);
3333
int mlx5_lag_mpesw_enable(struct mlx5_core_dev *dev);
34+
#ifdef CONFIG_MLX5_ESWITCH
35+
void mlx5_lag_disable_mpesw(struct mlx5_lag *ldev);
36+
#else
37+
static inline void mlx5_lag_disable_mpesw(struct mlx5_lag *ldev) {}
38+
#endif /* CONFIG_MLX5_ESWITCH */
3439

3540
#ifdef CONFIG_MLX5_ESWITCH
3641
void mlx5_mpesw_speed_update_work(struct work_struct *work);

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,9 @@ static int mlx5_sriov_enable(struct pci_dev *pdev, int num_vfs)
193193
err = pci_enable_sriov(pdev, num_vfs);
194194
if (err) {
195195
mlx5_core_warn(dev, "pci_enable_sriov failed : %d\n", err);
196+
devl_lock(devlink);
196197
mlx5_device_disable_sriov(dev, num_vfs, true, true);
198+
devl_unlock(devlink);
197199
}
198200
return err;
199201
}

drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_dbg.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1051,8 +1051,8 @@ static int dr_dump_domain_all(struct seq_file *file, struct mlx5dr_domain *dmn)
10511051
struct mlx5dr_table *tbl;
10521052
int ret;
10531053

1054-
mutex_lock(&dmn->dump_info.dbg_mutex);
10551054
mlx5dr_domain_lock(dmn);
1055+
mutex_lock(&dmn->dump_info.dbg_mutex);
10561056

10571057
ret = dr_dump_domain(file, dmn);
10581058
if (ret < 0)
@@ -1065,8 +1065,8 @@ static int dr_dump_domain_all(struct seq_file *file, struct mlx5dr_domain *dmn)
10651065
}
10661066

10671067
unlock_mutex:
1068-
mlx5dr_domain_unlock(dmn);
10691068
mutex_unlock(&dmn->dump_info.dbg_mutex);
1069+
mlx5dr_domain_unlock(dmn);
10701070
return ret;
10711071
}
10721072

0 commit comments

Comments
 (0)