Since upstream commit d9f3e9ecc456 ("net: ptp: introduce
.supported_perout_flags to ptp_clock_info") and commit 7c571ac57d9d ("net:
ptp: introduce .supported_extts_flags to ptp_clock_info"), kernel core now
requires that the driver set the .supported_perout_flags and
.supported_extts_flags fields in PTP clock info. Otherwise, the additional
flags will be rejected by the kernel automatically.i40e does not support perout flags, so reject any request with perout flags. Signed-off-by: Przemyslaw Korba <[email protected]> --- drivers/net/ethernet/intel/i40e/i40e_ptp.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/intel/i40e/i40e_ptp.c b/drivers/net/ethernet/intel/i40e/i40e_ptp.c index 7bcea7d9720f..8d7958692235 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_ptp.c +++ b/drivers/net/ethernet/intel/i40e/i40e_ptp.c @@ -601,10 +601,18 @@ static int i40e_ptp_feature_enable(struct ptp_clock_info *ptp, /* TODO: Implement flags handling for EXTTS and PEROUT */ switch (rq->type) { case PTP_CLK_REQ_EXTTS: + if (rq->extts.flags & ~(PTP_ENABLE_FEATURE | + PTP_RISING_EDGE | + PTP_FALLING_EDGE | + PTP_STRICT_FLAGS)) + return -EOPNOTSUPP; + func = PTP_PF_EXTTS; chan = rq->extts.index; break; case PTP_CLK_REQ_PEROUT: + if (rq->perout.flags) + return -EOPNOTSUPP; func = PTP_PF_PEROUT; chan = rq->perout.index; break; @@ -1340,7 +1348,9 @@ static int i40e_init_pin_config(struct i40e_pf *pf) pf->ptp_caps.n_ext_ts = 2; pf->ptp_caps.pps = 1; pf->ptp_caps.n_per_out = 2; - + pf->ptp_caps.supported_extts_flags = PTP_RISING_EDGE | + PTP_FALLING_EDGE | + PTP_STRICT_FLAGS; pf->ptp_caps.pin_config = kzalloc_objs(*pf->ptp_caps.pin_config, pf->ptp_caps.n_pins); if (!pf->ptp_caps.pin_config) base-commit: d5fbc991435eac7a1ead7cd2ddb5a743528718bb -- 2.43.0
