diff options
| author | Eran Ben Elisha <eranbe@mellanox.com> | 2020-06-16 12:07:10 +0300 |
|---|---|---|
| committer | Saeed Mahameed <saeedm@nvidia.com> | 2020-09-15 21:59:50 +0300 |
| commit | 0d2ffdc8d4002a62de31ff7aa3bef28c843c3cbe (patch) | |
| tree | ce2608efa6400d0731adaca921e538fbde6e3d92 | |
| parent | 87f3495cbe8d1d34ce430b11b1ea34e69e6f4126 (diff) | |
| download | linux-0d2ffdc8d4002a62de31ff7aa3bef28c843c3cbe.tar.xz | |
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>
| -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 = |
