| From 0c62050394ce52f0cb2884365f9cf7112e29ba9a Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 26 Nov 2025 10:48:49 +0100 |
| Subject: iavf: Implement settime64 with -EOPNOTSUPP |
| |
| From: Michal Schmidt <mschmidt@redhat.com> |
| |
| [ Upstream commit 1e43ebcd5152b3e681a334cc6542fb21770c3a2e ] |
| |
| ptp_clock_settime() assumes every ptp_clock has implemented settime64(). |
| Stub it with -EOPNOTSUPP to prevent a NULL dereference. |
| |
| The fix is similar to commit 329d050bbe63 ("gve: Implement settime64 |
| with -EOPNOTSUPP"). |
| |
| Fixes: d734223b2f0d ("iavf: add initial framework for registering PTP clock") |
| Signed-off-by: Michal Schmidt <mschmidt@redhat.com> |
| Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com> |
| Reviewed-by: Tim Hostetler <thostet@google.com> |
| Link: https://patch.msgid.link/20251126094850.2842557-1-mschmidt@redhat.com |
| Signed-off-by: Jakub Kicinski <kuba@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/ethernet/intel/iavf/iavf_ptp.c | 7 +++++++ |
| 1 file changed, 7 insertions(+) |
| |
| diff --git a/drivers/net/ethernet/intel/iavf/iavf_ptp.c b/drivers/net/ethernet/intel/iavf/iavf_ptp.c |
| index b4d5eda2e84fc..9cbd8c1540318 100644 |
| --- a/drivers/net/ethernet/intel/iavf/iavf_ptp.c |
| +++ b/drivers/net/ethernet/intel/iavf/iavf_ptp.c |
| @@ -252,6 +252,12 @@ static int iavf_ptp_gettimex64(struct ptp_clock_info *info, |
| return iavf_read_phc_indirect(adapter, ts, sts); |
| } |
| |
| +static int iavf_ptp_settime64(struct ptp_clock_info *info, |
| + const struct timespec64 *ts) |
| +{ |
| + return -EOPNOTSUPP; |
| +} |
| + |
| /** |
| * iavf_ptp_cache_phc_time - Cache PHC time for performing timestamp extension |
| * @adapter: private adapter structure |
| @@ -320,6 +326,7 @@ static int iavf_ptp_register_clock(struct iavf_adapter *adapter) |
| KBUILD_MODNAME, dev_name(dev)); |
| ptp_info->owner = THIS_MODULE; |
| ptp_info->gettimex64 = iavf_ptp_gettimex64; |
| + ptp_info->settime64 = iavf_ptp_settime64; |
| ptp_info->do_aux_work = iavf_ptp_do_aux_work; |
| |
| clock = ptp_clock_register(ptp_info, dev); |
| -- |
| 2.51.0 |
| |