timekeeping: Provide ktime_get_ntp_seconds()

ntp_adjtimex() requires access to the actual time keeper per timekeeper
ID. Provide an interface.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/all/20250519083026.411809421@linutronix.de
This commit is contained in:
Thomas Gleixner 2025-05-19 10:33:30 +02:00
parent 22c62b9a84
commit ffa0519baa
2 changed files with 12 additions and 0 deletions

View file

@ -2627,6 +2627,15 @@ int do_adjtimex(struct __kernel_timex *txc)
return ret;
}
/*
* Invoked from NTP with the time keeper lock held, so lockless access is
* fine.
*/
long ktime_get_ntp_seconds(unsigned int id)
{
return timekeeper_data[id].timekeeper.xtime_sec;
}
#ifdef CONFIG_NTP_PPS
/**
* hardpps() - Accessor function to NTP __hardpps function

View file

@ -45,4 +45,7 @@ static inline u64 clocksource_delta(u64 now, u64 last, u64 mask, u64 max_delta)
unsigned long timekeeper_lock_irqsave(void);
void timekeeper_unlock_irqrestore(unsigned long flags);
/* NTP specific interface to access the current seconds value */
long ktime_get_ntp_seconds(unsigned int id);
#endif /* _TIMEKEEPING_INTERNAL_H */