[Intel-wired-lan] [PATCH net 06/13] mlx5: reject unsupported external timestamp flags
Saeed Mahameed
saeedm at mellanox.com
Fri Nov 15 00:03:14 UTC 2019
On Thu, 2019-11-14 at 10:45 -0800, Richard Cochran wrote:
> From: Jacob Keller <jacob.e.keller at intel.com>
>
> Fix the mlx5 core PTP support to explicitly reject any future flags
> that
> get added to the external timestamp request ioctl.
>
> In order to maintain currently functioning code, this patch accepts
> all
> three current flags. This is because the PTP_RISING_EDGE and
> PTP_FALLING_EDGE flags have unclear semantics and each driver seems
> to
> have interpreted them slightly differently.
>
> [ RC: I'm not 100% sure what this driver does, but if I'm not wrong
> it
> follows the dp83640:
>
The driver will check if the PTP_FALLING_EDGE flag was set then it will
set it in HW, if not then it is going to default to PTP_RISING_EDGE, so
LGTM.
Reviewed-by: Saeed Mahameed <saeedm at mellanox.com>
But same story here, old tools that lazily set 0xffff or 0x0000 and
expected every thing to work.. again not sure if they do exist.
Ariel please have a look at this patch.
> flags Meaning
> ---------------------------------------------------- -------------
> -------------
> PTP_ENABLE_FEATURE Time stamp
> rising edge
> PTP_ENABLE_FEATURE|PTP_RISING_EDGE Time stamp
> rising edge
> PTP_ENABLE_FEATURE|PTP_FALLING_EDGE Time stamp
> falling edge
> PTP_ENABLE_FEATURE|PTP_RISING_EDGE|PTP_FALLING_EDGE Time stamp
> falling edge
> ]
>
> Cc: Feras Daoud <ferasda at mellanox.com>
> Cc: Eugenia Emantayev <eugenia at mellanox.com>
> Signed-off-by: Jacob Keller <jacob.e.keller at intel.com>
> Reviewed-by: Richard Cochran <richardcochran at gmail.com>
> ---
> drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
> b/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
> index cff6b60de304..9a40f24e3193 100644
> --- a/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
> +++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
> @@ -236,6 +236,12 @@ static int mlx5_extts_configure(struct
> ptp_clock_info *ptp,
> if (!MLX5_PPS_CAP(mdev))
> return -EOPNOTSUPP;
>
> + /* Reject requests with unsupported flags */
> + if (rq->extts.flags & ~(PTP_ENABLE_FEATURE |
> + PTP_RISING_EDGE |
> + PTP_FALLING_EDGE))
> + return -EOPNOTSUPP;
> +
> if (rq->extts.index >= clock->ptp_info.n_pins)
> return -EINVAL;
>
More information about the Intel-wired-lan
mailing list