Message ID | 20250312-jk-net-fixes-supported-extts-flags-v2-5-ea930ba82459@intel.com (mailing list archive) |
---|---|
State | Awaiting Upstream |
Delegated to: | Geert Uytterhoeven |
Headers | show |
Series | net: ptp: fix egregious supported flag checks | expand |
On Wed, Mar 12, 2025 at 03:15:54PM -0700, Jacob Keller wrote: > The ptp_ocp_signal_from_perout() function supports PTP_PEROUT_DUTY_CYCLE > and PTP_PEROUT_PHASE. It does not support PTP_PEROUT_ONE_SHOT, but does not > reject a request with such an unsupported flag. > > Add the appropriate check to ensure that unsupported requests are rejected > both for PTP_PEROUT_ONE_SHOT as well as any future flags. > > Fixes: 1aa66a3a135a ("ptp: ocp: Program the signal generators via PTP_CLK_REQ_PEROUT") > Reviewed-by: Vadim Fedorenko <vadim.fedorenko@linux.dev> > Signed-off-by: Jacob Keller <jacob.e.keller@intel.com> Reviewed-by: Simon Horman <horms@kernel.org>
diff --git a/drivers/ptp/ptp_ocp.c b/drivers/ptp/ptp_ocp.c index b651087f426f50a73229ca57634fc5d6912e0a87..4a87af0980d695a9ab1b23e2544f620759ccb892 100644 --- a/drivers/ptp/ptp_ocp.c +++ b/drivers/ptp/ptp_ocp.c @@ -2090,6 +2090,10 @@ ptp_ocp_signal_from_perout(struct ptp_ocp *bp, int gen, { struct ptp_ocp_signal s = { }; + if (req->flags & ~(PTP_PEROUT_DUTY_CYCLE | + PTP_PEROUT_PHASE)) + return -EOPNOTSUPP; + s.polarity = bp->signal[gen].polarity; s.period = ktime_set(req->period.sec, req->period.nsec); if (!s.period)