aboutsummaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
diff options
context:
space:
mode:
authorGravatar Eran Ben Elisha <eranbe@mellanox.com> 2020-06-16 12:07:10 +0300
committerGravatar Saeed Mahameed <saeedm@nvidia.com> 2020-09-15 11:59:50 -0700
commit0d2ffdc8d4002a62de31ff7aa3bef28c843c3cbe (patch)
treece2608efa6400d0731adaca921e538fbde6e3d92 /drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
parentnet/mlx5: Release clock lock before scheduling a PPS work (diff)
downloadlinux-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.c5
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 =