[Intel-wired-lan] [PATCH net 01/13] ptp: Validate requests to enable time stamping of external signals.

Keller, Jacob E jacob.e.keller at intel.com
Thu Nov 14 19:06:58 UTC 2019


> -----Original Message-----
> From: Richard Cochran <richardcochran at gmail.com>
> Sent: Thursday, November 14, 2019 10:45 AM
> To: netdev at vger.kernel.org
> Cc: intel-wired-lan at lists.osuosl.org; David Miller <davem at davemloft.net>;
> Brandon Streiff <brandon.streiff at ni.com>; Hall, Christopher S
> <christopher.s.hall at intel.com>; Eugenia Emantayev <eugenia at mellanox.com>;
> Felipe Balbi <felipe.balbi at linux.intel.com>; Feras Daoud
> <ferasda at mellanox.com>; Keller, Jacob E <jacob.e.keller at intel.com>; Kirsher,
> Jeffrey T <jeffrey.t.kirsher at intel.com>; Sergei Shtylyov
> <sergei.shtylyov at cogentembedded.com>; Stefan Sorensen
> <stefan.sorensen at spectralink.com>
> Subject: [PATCH net 01/13] ptp: Validate requests to enable time stamping of
> external signals.
> 
> Commit 415606588c61 ("PTP: introduce new versions of IOCTLs")
> introduced a new external time stamp ioctl that validates the flags.
> This patch extends the validation to ensure that at least one rising
> or falling edge flag is set when enabling external time stamps.
> 
> Signed-off-by: Richard Cochran <richardcochran at gmail.com>
> ---
>  drivers/ptp/ptp_chardev.c      | 18 +++++++++++++-----
>  include/uapi/linux/ptp_clock.h |  1 +
>  2 files changed, 14 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/ptp/ptp_chardev.c b/drivers/ptp/ptp_chardev.c
> index 67d0199840fd..cbbe1237ff8d 100644
> --- a/drivers/ptp/ptp_chardev.c
> +++ b/drivers/ptp/ptp_chardev.c
> @@ -149,11 +149,19 @@ long ptp_ioctl(struct posix_clock *pc, unsigned int cmd,
> unsigned long arg)
>  			err = -EFAULT;
>  			break;
>  		}
> -		if (((req.extts.flags & ~PTP_EXTTS_VALID_FLAGS) ||
> -			req.extts.rsv[0] || req.extts.rsv[1]) &&
> -			cmd == PTP_EXTTS_REQUEST2) {
> -			err = -EINVAL;
> -			break;
> +		if (cmd == PTP_EXTTS_REQUEST2) {
> +			/* Make sure no reserved bit is set. */
> +			if ((req.extts.flags & ~PTP_EXTTS_VALID_FLAGS) ||
> +			    req.extts.rsv[0] || req.extts.rsv[1]) {
> +				err = -EINVAL;
> +				break;
> +			}
> +			/* Ensure one of the rising/falling edge bits is set. */
> +			if ((req.extts.flags & PTP_ENABLE_FEATURE) &&
> +			    (req.extts.flags & PTP_EXTTS_EDGES) == 0) {
> +				err = -EINVAL;
> +				break;
> +			}

Just to confirm, these new ioctls haven't been around long enough to be concerned about this change?

Thanks,
Jake



More information about the Intel-wired-lan mailing list