Skip to content

Commit 5af49c5

Browse files
mosheshemesh2gregkh
authored andcommitted
net/mlx5: fw reset, clear reset requested on drain_fw_reset
[ Upstream commit 89a898d ] drain_fw_reset() waits for ongoing firmware reset events and blocks new event handling, but does not clear the reset requested flag, and may keep sync reset polling. To fix it, call mlx5_sync_reset_clear_reset_requested() to clear the flag, stop sync reset polling, and resume health polling, ensuring health issues are still detected after the firmware reset drain. Fixes: 16d42d3 ("net/mlx5: Drain fw_reset when removing device") Signed-off-by: Moshe Shemesh <moshe@nvidia.com> Reviewed-by: Shay Drori <shayd@nvidia.com> Signed-off-by: Tariq Toukan <tariqt@nvidia.com> Link: https://patch.msgid.link/1765284977-1363052-2-git-send-email-tariqt@nvidia.com Signed-off-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
1 parent 4066b5b commit 5af49c5

1 file changed

Lines changed: 2 additions & 1 deletion

File tree

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -843,7 +843,8 @@ void mlx5_drain_fw_reset(struct mlx5_core_dev *dev)
843843
cancel_work_sync(&fw_reset->reset_reload_work);
844844
cancel_work_sync(&fw_reset->reset_now_work);
845845
cancel_work_sync(&fw_reset->reset_abort_work);
846-
cancel_delayed_work(&fw_reset->reset_timeout_work);
846+
if (test_bit(MLX5_FW_RESET_FLAGS_RESET_REQUESTED, &fw_reset->reset_flags))
847+
mlx5_sync_reset_clear_reset_requested(dev, true);
847848
}
848849

849850
static const struct devlink_param mlx5_fw_reset_devlink_params[] = {

0 commit comments

Comments
 (0)