Patch "net/mlx5e: Schedule overflow check work to mlx5e workqueue" has been added to the 4.12-stable tree
From: <gregkh@linuxfoundation.org>
Date: 2017-08-08 23:29:25
This is a note to let you know that I've just added the patch titled
net/mlx5e: Schedule overflow check work to mlx5e workqueue
to the 4.12-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
net-mlx5e-schedule-overflow-check-work-to-mlx5e-workqueue.patch
and it can be found in the queue-4.12 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let [off-list ref] know about it.
From foo@baz Tue Aug 8 16:27:29 PDT 2017
From: Eugenia Emantayev <redacted>
Date: Wed, 12 Jul 2017 17:44:07 +0300
Subject: net/mlx5e: Schedule overflow check work to mlx5e workqueue
From: Eugenia Emantayev <redacted>
[ Upstream commit f08c39ed0bfb503c7b3e013cd40d036ce6a0941a ]
This is done in order to ensure that work will not run after the cleanup.
Fixes: ef9814deafd0 ('net/mlx5e: Add HW timestamping (TS) support')
Signed-off-by: Eugenia Emantayev <redacted>
Signed-off-by: Saeed Mahameed <redacted>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/net/ethernet/mellanox/mlx5/core/en_clock.c | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_clock.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_clock.c@@ -114,13 +114,14 @@ static void mlx5e_timestamp_overflow(str struct delayed_work *dwork = to_delayed_work(work); struct mlx5e_tstamp *tstamp = container_of(dwork, struct mlx5e_tstamp, overflow_work); + struct mlx5e_priv *priv = container_of(tstamp, struct mlx5e_priv, tstamp); unsigned long flags; write_lock_irqsave(&tstamp->lock, flags); timecounter_read(&tstamp->clock); write_unlock_irqrestore(&tstamp->lock, flags); - schedule_delayed_work(&tstamp->overflow_work, - msecs_to_jiffies(tstamp->overflow_period * 1000)); + queue_delayed_work(priv->wq, &tstamp->overflow_work, + msecs_to_jiffies(tstamp->overflow_period * 1000)); } int mlx5e_hwstamp_set(struct net_device *dev, struct ifreq *ifr)
@@ -578,7 +579,7 @@ void mlx5e_timestamp_init(struct mlx5e_p INIT_WORK(&tstamp->pps_info.out_work, mlx5e_pps_out); INIT_DELAYED_WORK(&tstamp->overflow_work, mlx5e_timestamp_overflow); if (tstamp->overflow_period) - schedule_delayed_work(&tstamp->overflow_work, 0); + queue_delayed_work(priv->wq, &tstamp->overflow_work, 0); else mlx5_core_warn(priv->mdev, "invalid overflow period, overflow_work is not scheduled\n");
@@ -614,8 +615,6 @@ void mlx5e_timestamp_cleanup(struct mlx5 } cancel_work_sync(&tstamp->pps_info.out_work); - - kfree(tstamp->ptp_info.pin_config); - cancel_delayed_work_sync(&tstamp->overflow_work); + kfree(tstamp->ptp_info.pin_config); }
Patches currently in stable-queue which might be from eugenia@mellanox.com are queue-4.12/net-mlx5e-change-1pps-out-scheme.patch queue-4.12/net-mlx5e-schedule-overflow-check-work-to-mlx5e-workqueue.patch queue-4.12/net-mlx5e-fix-wrong-delay-calculation-for-overflow-check-scheduling.patch queue-4.12/net-mlx5e-add-missing-support-for-ptp_clk_req_pps-request.patch queue-4.12/net-mlx5e-fix-broken-disable-1pps-flow.patch queue-4.12/net-mlx5-fix-mlx5_ifc_mtpps_reg_bits-structure-size.patch queue-4.12/net-mlx5e-add-field-select-to-mtpps-register.patch