[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