Skip to content

Commit

Permalink
net/mlx5: Fix crash during sync firmware reset
Browse files Browse the repository at this point in the history
[ Upstream commit aefb62a ]

When setting Bluefield to DPU NIC mode using mlxconfig tool +  sync
firmware reset flow, we run into scenario where the host was not
eswitch manager at the time of mlx5 driver load but becomes eswitch manager
after the sync firmware reset flow. This results in null pointer
access of mpfs structure during mac filter add. This change prevents null
pointer access but mpfs table entries will not be added.

Fixes: 5ec6974 ("net/mlx5: Add support for devlink reload action fw activate")
Signed-off-by: Suresh Devarakonda <ramad@nvidia.com>
Reviewed-by: Moshe Shemesh <moshe@nvidia.com>
Reviewed-by: Bodong Wang <bodong@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
Link: https://lore.kernel.org/r/20221026135153.154807-12-saeed@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
  • Loading branch information
sureshdvr authored and gregkh committed Nov 3, 2022
1 parent 37ada47 commit ae1b085
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions drivers/net/ethernet/mellanox/mlx5/core/lib/mpfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ void mlx5_mpfs_cleanup(struct mlx5_core_dev *dev)
{
struct mlx5_mpfs *mpfs = dev->priv.mpfs;

if (!MLX5_ESWITCH_MANAGER(dev))
if (!mpfs)
return;

WARN_ON(!hlist_empty(mpfs->hash));
Expand All @@ -137,7 +137,7 @@ int mlx5_mpfs_add_mac(struct mlx5_core_dev *dev, u8 *mac)
int err = 0;
u32 index;

if (!MLX5_ESWITCH_MANAGER(dev))
if (!mpfs)
return 0;

mutex_lock(&mpfs->lock);
Expand Down Expand Up @@ -185,7 +185,7 @@ int mlx5_mpfs_del_mac(struct mlx5_core_dev *dev, u8 *mac)
int err = 0;
u32 index;

if (!MLX5_ESWITCH_MANAGER(dev))
if (!mpfs)
return 0;

mutex_lock(&mpfs->lock);
Expand Down

0 comments on commit ae1b085

Please sign in to comment.