lkml.org 
[lkml]   [2020]   [Oct]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.9 260/757] net/mlx5: Dont call timecounter cyc2time directly from 1PPS flow
    Date
    From: Eran Ben Elisha <eranbe@mellanox.com>

    [ Upstream commit 0d2ffdc8d4002a62de31ff7aa3bef28c843c3cbe ]

    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>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c | 5 +++--
    1 file 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 2d55b7c22c034..4e7cfa22b3d2f 100644
    --- a/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
    +++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
    @@ -550,8 +550,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 =
    --
    2.25.1


    \
     
     \ /
      Last update: 2020-10-27 17:11    [W:3.517 / U:0.108 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site