ptp: Return -EINVAL on ptp_clock_register if required ops are NULL

ptp_clock should never be registered unless it stubs one of gettimex64()
or gettime64() and settime64(). WARN_ON_ONCE and error out if either set
of function pointers is null.

For consistency, n_alarm validation is also folded into the
WARN_ON_ONCE.

Suggested-by: Kuniyuki Iwashima <kuniyu@google.com>
Reviewed-by: Kuniyuki Iwashima <kuniyu@google.com>
Reviewed-by: Harshitha Ramamurthy <hramamurthy@google.com>
Reviewed-by: Vadim Fedorenko <vadim.fedorenko@linux.dev>
Signed-off-by: Tim Hostetler <thostet@google.com>
Acked-by: Richard Cochran <richardcochran@gmail.com>
Link: https://patch.msgid.link/20251104225915.2040080-1-thostet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
pull/1354/merge
Tim Hostetler 2025-11-04 14:59:15 -08:00 committed by Jakub Kicinski
parent 89aec171d9
commit dfb073d32c
1 changed files with 3 additions and 1 deletions

View File

@ -322,7 +322,9 @@ struct ptp_clock *ptp_clock_register(struct ptp_clock_info *info,
char debugfsname[16]; char debugfsname[16];
size_t size; size_t size;
if (info->n_alarm > PTP_MAX_ALARMS) if (WARN_ON_ONCE(info->n_alarm > PTP_MAX_ALARMS ||
(!info->gettimex64 && !info->gettime64) ||
!info->settime64))
return ERR_PTR(-EINVAL); return ERR_PTR(-EINVAL);
/* Initialize a clock structure. */ /* Initialize a clock structure. */