]> www.infradead.org Git - users/hch/misc.git/commitdiff
ptp: ocp: reject unsupported periodic output flags
authorJacob Keller <jacob.e.keller@intel.com>
Wed, 12 Mar 2025 22:15:54 +0000 (15:15 -0700)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 20 Mar 2025 07:50:03 +0000 (08:50 +0100)
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>
Link: https://patch.msgid.link/20250312-jk-net-fixes-supported-extts-flags-v2-5-ea930ba82459@intel.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/ptp/ptp_ocp.c

index 34c616bd0a02f65aadbe88c49417f3cb7c601a8b..b25635c5c745352d8275f287b6f08047d83a585c 100644 (file)
@@ -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)