diff options
author | 2020-06-16 12:07:10 +0300 | |
---|---|---|
committer | 2020-09-15 11:59:50 -0700 | |
commit | 0d2ffdc8d4002a62de31ff7aa3bef28c843c3cbe (patch) | |
tree | ce2608efa6400d0731adaca921e538fbde6e3d92 /drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c | |
parent | net/mlx5: Release clock lock before scheduling a PPS work (diff) | |
download | linux-0d2ffdc8d4002a62de31ff7aa3bef28c843c3cbe.tar.gz linux-0d2ffdc8d4002a62de31ff7aa3bef28c843c3cbe.tar.bz2 linux-0d2ffdc8d4002a62de31ff7aa3bef28c843c3cbe.zip |
net/mlx5: Don't call timecounter cyc2time directly from 1PPS flow
Before calling timecounter_cyc2time(), clock->lock must be taken.
Use mlx5_timecounter_cyc2time instead which guarantees a safe access.
Fixes: afc98a0b46d8 ("net/mlx5: Update ptp_clock_event foreach PPS event")
Signed-off-by: Eran Ben Elisha <eranbe@mellanox.com>
Diffstat (limited to 'drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c')
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c index f8465e42b238..7fc59e01a353 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c @@ -557,8 +557,9 @@ static int mlx5_pps_event(struct notifier_block *nb, switch (clock->ptp_info.pin_config[pin].func) { case PTP_PF_EXTTS: ptp_event.index = pin; - ptp_event.timestamp = timecounter_cyc2time(&clock->tc, - be64_to_cpu(eqe->data.pps.time_stamp)); + ptp_event.timestamp = + mlx5_timecounter_cyc2time(clock, + be64_to_cpu(eqe->data.pps.time_stamp)); if (clock->pps_info.enabled) { ptp_event.type = PTP_CLOCK_PPSUSR; ptp_event.pps_times.ts_real = |