From 6f01e8cfb4a016c4c2f3182bf84155a030cbcadf Mon Sep 17 00:00:00 2001 From: Jiri Kosina Date: Oct 05 2017 14:09:59 +0000 Subject: Merge remote-tracking branch 'origin/users/tbogendoerfer/SLE15/for-next' into SLE15 --- diff --git a/patches.drivers/net-mlx5-Introduce-trigger_health_work-function.patch b/patches.drivers/net-mlx5-Introduce-trigger_health_work-function.patch index 4d80d6c..d80c6d1 100644 --- a/patches.drivers/net-mlx5-Introduce-trigger_health_work-function.patch +++ b/patches.drivers/net-mlx5-Introduce-trigger_health_work-function.patch @@ -16,9 +16,9 @@ Reviewed-by: Boris Pismenny Signed-off-by: Saeed Mahameed Acked-by: Thomas Bogendoerfer --- - drivers/net/ethernet/mellanox/mlx5/core/health.c | 31 +++++++++++++++-------- + drivers/net/ethernet/mellanox/mlx5/core/health.c | 32 +++++++++++++++-------- include/linux/mlx5/driver.h | 1 - 2 files changed, 22 insertions(+), 10 deletions(-) + 2 files changed, 22 insertions(+), 11 deletions(-) --- a/drivers/net/ethernet/mellanox/mlx5/core/health.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/health.c @@ -30,12 +30,12 @@ Acked-by: Thomas Bogendoerfer health = container_of(work, struct mlx5_core_health, work); priv = container_of(health, struct mlx5_priv, health); -@@ -193,13 +194,14 @@ static void health_care(struct work_stru +@@ -193,13 +194,13 @@ static void health_care(struct work_stru mlx5_core_warn(dev, "handling bad device here\n"); mlx5_handle_bad_state(dev); +- spin_lock(&health->wq_lock); + spin_lock_irqsave(&health->wq_lock, flags); - spin_lock(&health->wq_lock); if (!test_bit(MLX5_DROP_NEW_RECOVERY_WORK, &health->flags)) schedule_delayed_work(&health->recover_work, recover_delay); else @@ -46,7 +46,7 @@ Acked-by: Thomas Bogendoerfer } static const char *hsynd_str(u8 synd) -@@ -270,6 +272,20 @@ static unsigned long get_next_poll_jiffi +@@ -270,6 +271,20 @@ static unsigned long get_next_poll_jiffi return next; } @@ -67,7 +67,7 @@ Acked-by: Thomas Bogendoerfer static void poll_health(unsigned long data) { struct mlx5_core_dev *dev = (struct mlx5_core_dev *)data; -@@ -294,13 +310,7 @@ static void poll_health(unsigned long da +@@ -294,13 +309,7 @@ static void poll_health(unsigned long da if (in_fatal(dev) && !health->sick) { health->sick = true; print_health_info(dev); @@ -82,7 +82,7 @@ Acked-by: Thomas Bogendoerfer } out: -@@ -334,11 +344,12 @@ void mlx5_stop_health_poll(struct mlx5_c +@@ -334,11 +343,12 @@ void mlx5_stop_health_poll(struct mlx5_c void mlx5_drain_health_wq(struct mlx5_core_dev *dev) { struct mlx5_core_health *health = &dev->priv.health;