RDMA/mlx5: Call dev_put() after the blocking notifier
authorChiara Meiohas <cmeiohas@nvidia.com>
Thu, 31 Oct 2024 13:36:50 +0000 (15:36 +0200)
committerLeon Romanovsky <leon@kernel.org>
Mon, 4 Nov 2024 11:57:20 +0000 (06:57 -0500)
Move dev_put() call to occur directly after the blocking
notifier, instead of within the event handler.

Fixes: 8d159eb2117b ("RDMA/mlx5: Use IB set_netdev and get_netdev functions")
Signed-off-by: Chiara Meiohas <cmeiohas@nvidia.com>
Link: https://patch.msgid.link/342ff94b3dcbb07da1c7dab862a73933d604b717.1730381292.git.leon@kernel.org
Signed-off-by: Leon Romanovsky <leon@kernel.org>
drivers/infiniband/hw/mlx5/main.c
drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c

index b4476df..5f7fe32 100644 (file)
@@ -3242,7 +3242,6 @@ static int lag_event(struct notifier_block *nb, unsigned long event, void *data)
                        }
                        err = ib_device_set_netdev(&dev->ib_dev, ndev,
                                                   portnum + 1);
-                       dev_put(ndev);
                        if (err)
                                return err;
                        /* Rescan gids after new netdev assignment */
index 8577db3..d661267 100644 (file)
@@ -516,6 +516,7 @@ void mlx5_modify_lag(struct mlx5_lag *ldev,
                blocking_notifier_call_chain(&dev0->priv.lag_nh,
                                             MLX5_DRIVER_EVENT_ACTIVE_BACKUP_LAG_CHANGE_LOWERSTATE,
                                             ndev);
+               dev_put(ndev);
        }
 }