[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190829172113.GA2166@localhost>
Date: Thu, 29 Aug 2019 10:21:13 -0700
From: Richard Cochran <richardcochran@...il.com>
To: Felipe Balbi <felipe.balbi@...ux.intel.com>
Cc: Christopher S Hall <christopher.s.hall@...el.com>,
netdev@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2 1/2] PTP: introduce new versions of IOCTLs
> @@ -139,11 +141,24 @@ long ptp_ioctl(struct posix_clock *pc, unsigned int cmd, unsigned long arg)
> break;
>
> case PTP_EXTTS_REQUEST:
> + case PTP_EXTTS_REQUEST2:
> + memset(&req, 0, sizeof(req));
> +
> if (copy_from_user(&req.extts, (void __user *)arg,
> sizeof(req.extts))) {
> err = -EFAULT;
> break;
> }
> + if ((req.extts.flags || req.extts.rsv[0] || req.extts.rsv[1])
> + && cmd == PTP_EXTTS_REQUEST2) {
> + err = -EINVAL;
> + break;
> + } else if (cmd == PTP_EXTTS_REQUEST) {
> + req.extts.flags = 0;
This still isn't quite right. Sorry that was my fault.
The req.extts.flags can be (PTP_ENABLE_FEATURE | PTP_RISING_EDGE |
PTP_FALLING_EDGE), and ENABLE is used immediately below in this case.
Please #define those bits into a valid mask, and then:
- for PTP_EXTTS_REQUEST2 check that ~mask is zero, and
- for PTP_EXTTS_REQUEST clear the ~mask bits for the drivers.
Thanks again for cleaning this up!
Richard
> + req.extts.rsv[0] = 0;
> + req.extts.rsv[1] = 0;
> + }
> +
> if (req.extts.index >= ops->n_ext_ts) {
> err = -EINVAL;
> break;
Powered by blists - more mailing lists