ntp: Move tick_length* into ntp_data

Continue the conversion from static variables to struct based data.

No functional change.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Anna-Maria Behnsen <anna-maria@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: John Stultz <jstultz@google.com>
Link: https://lore.kernel.org/all/20240911-devel-anna-maria-b4-timers-ptp-ntp-v1-8-2d52f4e13476@linutronix.de
This commit is contained in:
Thomas Gleixner 2024-09-11 15:17:44 +02:00
parent 68f66f97c5
commit ec93ec22aa

View File

@ -25,20 +25,21 @@
/**
* struct ntp_data - Structure holding all NTP related state
* @tick_usec: USER_HZ period in microseconds
* @tick_length: Adjusted tick length
* @tick_length_base: Base value for @tick_length
*
* Protected by the timekeeping locks.
*/
struct ntp_data {
unsigned long tick_usec;
u64 tick_length;
u64 tick_length_base;
};
static struct ntp_data tk_ntp_data = {
.tick_usec = USER_TICK_USEC,
};
static u64 tick_length;
static u64 tick_length_base;
#define SECS_PER_DAY 86400
#define MAX_TICKADJ 500LL /* usecs */
#define MAX_TICKADJ_SCALED \
@ -263,8 +264,8 @@ static void ntp_update_frequency(struct ntp_data *ntpdata)
* Don't wait for the next second_overflow, apply the change to the
* tick length immediately:
*/
tick_length += new_base - tick_length_base;
tick_length_base = new_base;
ntpdata->tick_length += new_base - ntpdata->tick_length_base;
ntpdata->tick_length_base = new_base;
}
static inline s64 ntp_update_offset_fll(s64 offset64, long secs)
@ -341,8 +342,8 @@ static void __ntp_clear(struct ntp_data *ntpdata)
ntp_update_frequency(ntpdata);
tick_length = tick_length_base;
time_offset = 0;
ntpdata->tick_length = ntpdata->tick_length_base;
time_offset = 0;
ntp_next_leap_sec = TIME64_MAX;
/* Clear PPS state variables */
@ -360,7 +361,7 @@ void ntp_clear(void)
u64 ntp_tick_length(void)
{
return tick_length;
return tk_ntp_data.tick_length;
}
/**
@ -391,6 +392,7 @@ ktime_t ntp_get_next_leap(void)
*/
int second_overflow(time64_t secs)
{
struct ntp_data *ntpdata = &tk_ntp_data;
s64 delta;
int leap = 0;
s32 rem;
@ -451,11 +453,11 @@ int second_overflow(time64_t secs)
}
/* Compute the phase adjustment for the next second */
tick_length = tick_length_base;
ntpdata->tick_length = ntpdata->tick_length_base;
delta = ntp_offset_chunk(time_offset);
time_offset -= delta;
tick_length += delta;
delta = ntp_offset_chunk(time_offset);
time_offset -= delta;
ntpdata->tick_length += delta;
/* Check PPS signal */
pps_dec_valid();
@ -465,18 +467,18 @@ int second_overflow(time64_t secs)
if (time_adjust > MAX_TICKADJ) {
time_adjust -= MAX_TICKADJ;
tick_length += MAX_TICKADJ_SCALED;
ntpdata->tick_length += MAX_TICKADJ_SCALED;
goto out;
}
if (time_adjust < -MAX_TICKADJ) {
time_adjust += MAX_TICKADJ;
tick_length -= MAX_TICKADJ_SCALED;
ntpdata->tick_length -= MAX_TICKADJ_SCALED;
goto out;
}
tick_length += (s64)(time_adjust * NSEC_PER_USEC / NTP_INTERVAL_FREQ)
<< NTP_SCALE_SHIFT;
ntpdata->tick_length += (s64)(time_adjust * NSEC_PER_USEC / NTP_INTERVAL_FREQ)
<< NTP_SCALE_SHIFT;
time_adjust = 0;
out: