mirror of
https://github.com/torvalds/linux.git
synced 2026-05-25 23:52:08 +02:00
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/20260224114652.1787431-1-tariqt@nvidia.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
commit
97f87e5788
|
|
@ -259,7 +259,6 @@ static void mlx5e_ipsec_init_limits(struct mlx5e_ipsec_sa_entry *sa_entry,
|
|||
static void mlx5e_ipsec_init_macs(struct mlx5e_ipsec_sa_entry *sa_entry,
|
||||
struct mlx5_accel_esp_xfrm_attrs *attrs)
|
||||
{
|
||||
struct mlx5_core_dev *mdev = mlx5e_ipsec_sa2dev(sa_entry);
|
||||
struct mlx5e_ipsec_addr *addrs = &attrs->addrs;
|
||||
struct net_device *netdev = sa_entry->dev;
|
||||
struct xfrm_state *x = sa_entry->x;
|
||||
|
|
@ -276,7 +275,7 @@ static void mlx5e_ipsec_init_macs(struct mlx5e_ipsec_sa_entry *sa_entry,
|
|||
attrs->type != XFRM_DEV_OFFLOAD_PACKET)
|
||||
return;
|
||||
|
||||
mlx5_query_mac_address(mdev, addr);
|
||||
ether_addr_copy(addr, netdev->dev_addr);
|
||||
switch (attrs->dir) {
|
||||
case XFRM_DEV_OFFLOAD_IN:
|
||||
src = attrs->dmac;
|
||||
|
|
|
|||
|
|
@ -4068,6 +4068,8 @@ int mlx5_devlink_eswitch_mode_set(struct devlink *devlink, u16 mode,
|
|||
|
||||
if (mlx5_mode == MLX5_ESWITCH_LEGACY)
|
||||
esw->dev->priv.flags |= MLX5_PRIV_FLAGS_SWITCH_LEGACY;
|
||||
if (mlx5_mode == MLX5_ESWITCH_OFFLOADS)
|
||||
esw->dev->priv.flags &= ~MLX5_PRIV_FLAGS_SWITCH_LEGACY;
|
||||
mlx5_eswitch_disable_locked(esw);
|
||||
if (mlx5_mode == MLX5_ESWITCH_OFFLOADS) {
|
||||
if (mlx5_devlink_trap_get_num_active(esw->dev)) {
|
||||
|
|
|
|||
|
|
@ -1869,8 +1869,12 @@ void mlx5_lag_disable_change(struct mlx5_core_dev *dev)
|
|||
mutex_lock(&ldev->lock);
|
||||
|
||||
ldev->mode_changes_in_progress++;
|
||||
if (__mlx5_lag_is_active(ldev))
|
||||
mlx5_disable_lag(ldev);
|
||||
if (__mlx5_lag_is_active(ldev)) {
|
||||
if (ldev->mode == MLX5_LAG_MODE_MPESW)
|
||||
mlx5_lag_disable_mpesw(ldev);
|
||||
else
|
||||
mlx5_disable_lag(ldev);
|
||||
}
|
||||
|
||||
mutex_unlock(&ldev->lock);
|
||||
mlx5_devcom_comp_unlock(dev->priv.hca_devcom_comp);
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ static int mlx5_mpesw_metadata_set(struct mlx5_lag *ldev)
|
|||
return err;
|
||||
}
|
||||
|
||||
static int enable_mpesw(struct mlx5_lag *ldev)
|
||||
static int mlx5_lag_enable_mpesw(struct mlx5_lag *ldev)
|
||||
{
|
||||
struct mlx5_core_dev *dev0;
|
||||
int err;
|
||||
|
|
@ -126,7 +126,7 @@ static int enable_mpesw(struct mlx5_lag *ldev)
|
|||
return err;
|
||||
}
|
||||
|
||||
static void disable_mpesw(struct mlx5_lag *ldev)
|
||||
void mlx5_lag_disable_mpesw(struct mlx5_lag *ldev)
|
||||
{
|
||||
if (ldev->mode == MLX5_LAG_MODE_MPESW) {
|
||||
mlx5_mpesw_metadata_cleanup(ldev);
|
||||
|
|
@ -152,9 +152,9 @@ static void mlx5_mpesw_work(struct work_struct *work)
|
|||
}
|
||||
|
||||
if (mpesww->op == MLX5_MPESW_OP_ENABLE)
|
||||
mpesww->result = enable_mpesw(ldev);
|
||||
mpesww->result = mlx5_lag_enable_mpesw(ldev);
|
||||
else if (mpesww->op == MLX5_MPESW_OP_DISABLE)
|
||||
disable_mpesw(ldev);
|
||||
mlx5_lag_disable_mpesw(ldev);
|
||||
unlock:
|
||||
mutex_unlock(&ldev->lock);
|
||||
mlx5_devcom_comp_unlock(devcom);
|
||||
|
|
|
|||
|
|
@ -31,6 +31,11 @@ int mlx5_lag_mpesw_do_mirred(struct mlx5_core_dev *mdev,
|
|||
bool mlx5_lag_is_mpesw(struct mlx5_core_dev *dev);
|
||||
void mlx5_lag_mpesw_disable(struct mlx5_core_dev *dev);
|
||||
int mlx5_lag_mpesw_enable(struct mlx5_core_dev *dev);
|
||||
#ifdef CONFIG_MLX5_ESWITCH
|
||||
void mlx5_lag_disable_mpesw(struct mlx5_lag *ldev);
|
||||
#else
|
||||
static inline void mlx5_lag_disable_mpesw(struct mlx5_lag *ldev) {}
|
||||
#endif /* CONFIG_MLX5_ESWITCH */
|
||||
|
||||
#ifdef CONFIG_MLX5_ESWITCH
|
||||
void mlx5_mpesw_speed_update_work(struct work_struct *work);
|
||||
|
|
|
|||
|
|
@ -193,7 +193,9 @@ static int mlx5_sriov_enable(struct pci_dev *pdev, int num_vfs)
|
|||
err = pci_enable_sriov(pdev, num_vfs);
|
||||
if (err) {
|
||||
mlx5_core_warn(dev, "pci_enable_sriov failed : %d\n", err);
|
||||
devl_lock(devlink);
|
||||
mlx5_device_disable_sriov(dev, num_vfs, true, true);
|
||||
devl_unlock(devlink);
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1051,8 +1051,8 @@ static int dr_dump_domain_all(struct seq_file *file, struct mlx5dr_domain *dmn)
|
|||
struct mlx5dr_table *tbl;
|
||||
int ret;
|
||||
|
||||
mutex_lock(&dmn->dump_info.dbg_mutex);
|
||||
mlx5dr_domain_lock(dmn);
|
||||
mutex_lock(&dmn->dump_info.dbg_mutex);
|
||||
|
||||
ret = dr_dump_domain(file, dmn);
|
||||
if (ret < 0)
|
||||
|
|
@ -1065,8 +1065,8 @@ static int dr_dump_domain_all(struct seq_file *file, struct mlx5dr_domain *dmn)
|
|||
}
|
||||
|
||||
unlock_mutex:
|
||||
mlx5dr_domain_unlock(dmn);
|
||||
mutex_unlock(&dmn->dump_info.dbg_mutex);
|
||||
mlx5dr_domain_unlock(dmn);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user