Commit ec93ec22 authored by Thomas Gleixner's avatar Thomas Gleixner
Browse files

ntp: Move tick_length* into ntp_data



Continue the conversion from static variables to struct based data.

No functional change.

Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Signed-off-by: default avatarAnna-Maria Behnsen <anna-maria@linutronix.de>
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Acked-by: default avatarJohn Stultz <jstultz@google.com>
Link: https://lore.kernel.org/all/20240911-devel-anna-maria-b4-timers-ptp-ntp-v1-8-2d52f4e13476@linutronix.de
parent 68f66f97
Loading
Loading
Loading
Loading
+18 −16
Original line number Diff line number Diff line
@@ -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,7 +342,7 @@ static void __ntp_clear(struct ntp_data *ntpdata)

	ntp_update_frequency(ntpdata);

	tick_length	= tick_length_base;
	ntpdata->tick_length	= ntpdata->tick_length_base;
	time_offset		= 0;

	ntp_next_leap_sec = TIME64_MAX;
@@ -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;
	ntpdata->tick_length	+= delta;

	/* Check PPS signal */
	pps_dec_valid();
@@ -465,17 +467,17 @@ 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)
	ntpdata->tick_length += (s64)(time_adjust * NSEC_PER_USEC / NTP_INTERVAL_FREQ)
				<< NTP_SCALE_SHIFT;
	time_adjust = 0;