diff options
Diffstat (limited to 'kernel/time/ntp.c')
| -rw-r--r-- | kernel/time/ntp.c | 23 | 
1 files changed, 10 insertions, 13 deletions
diff --git a/kernel/time/ntp.c b/kernel/time/ntp.c index a09ded765f6c..c5e0cba3b39c 100644 --- a/kernel/time/ntp.c +++ b/kernel/time/ntp.c @@ -502,7 +502,7 @@ static void sched_sync_hw_clock(struct timespec64 now,  {  	struct timespec64 next; -	getnstimeofday64(&next); +	ktime_get_real_ts64(&next);  	if (!fail)  		next.tv_sec = 659;  	else { @@ -537,7 +537,7 @@ static void sync_rtc_clock(void)  	if (!IS_ENABLED(CONFIG_RTC_SYSTOHC))  		return; -	getnstimeofday64(&now); +	ktime_get_real_ts64(&now);  	adjust = now;  	if (persistent_clock_is_local) @@ -591,7 +591,7 @@ static bool sync_cmos_clock(void)  	 * Architectures are strongly encouraged to use rtclib and not  	 * implement this legacy API.  	 */ -	getnstimeofday64(&now); +	ktime_get_real_ts64(&now);  	if (rtc_tv_nsec_ok(-1 * target_nsec, &adjust, &now)) {  		if (persistent_clock_is_local)  			adjust.tv_sec -= (sys_tz.tz_minuteswest * 60); @@ -642,7 +642,7 @@ void ntp_notify_cmos_timer(void)  /*   * Propagate a new txc->status value into the NTP state:   */ -static inline void process_adj_status(struct timex *txc, struct timespec64 *ts) +static inline void process_adj_status(const struct timex *txc)  {  	if ((time_status & STA_PLL) && !(txc->status & STA_PLL)) {  		time_state = TIME_OK; @@ -665,12 +665,10 @@ static inline void process_adj_status(struct timex *txc, struct timespec64 *ts)  } -static inline void process_adjtimex_modes(struct timex *txc, -						struct timespec64 *ts, -						s32 *time_tai) +static inline void process_adjtimex_modes(const struct timex *txc, s32 *time_tai)  {  	if (txc->modes & ADJ_STATUS) -		process_adj_status(txc, ts); +		process_adj_status(txc);  	if (txc->modes & ADJ_NANO)  		time_status |= STA_NANO; @@ -718,7 +716,7 @@ static inline void process_adjtimex_modes(struct timex *txc,   * adjtimex mainly allows reading (and writing, if superuser) of   * kernel time-keeping variables. used by xntpd.   */ -int __do_adjtimex(struct timex *txc, struct timespec64 *ts, s32 *time_tai) +int __do_adjtimex(struct timex *txc, const struct timespec64 *ts, s32 *time_tai)  {  	int result; @@ -735,7 +733,7 @@ int __do_adjtimex(struct timex *txc, struct timespec64 *ts, s32 *time_tai)  		/* If there are input parameters, then process them: */  		if (txc->modes) -			process_adjtimex_modes(txc, ts, time_tai); +			process_adjtimex_modes(txc, time_tai);  		txc->offset = shift_right(time_offset * NTP_INTERVAL_FREQ,  				  NTP_SCALE_SHIFT); @@ -1022,12 +1020,11 @@ void __hardpps(const struct timespec64 *phase_ts, const struct timespec64 *raw_t  static int __init ntp_tick_adj_setup(char *str)  { -	int rc = kstrtol(str, 0, (long *)&ntp_tick_adj); - +	int rc = kstrtos64(str, 0, &ntp_tick_adj);  	if (rc)  		return rc; -	ntp_tick_adj <<= NTP_SCALE_SHIFT; +	ntp_tick_adj <<= NTP_SCALE_SHIFT;  	return 1;  }  |