ntp/pps: use timespec64 for hardpps()
There is only one user of the hardpps function in the kernel, so it makes sense to atomically change it over to using 64-bit timestamps for y2038 safety. In the hardpps implementation, we also need to change the pps_normtime structure, which is similar to struct timespec and also requires a 64-bit seconds portion. This introduces two temporary variables in pps_kc_event() to do the conversion, they will be removed again in the next step, which seemed preferable to having a larger patch changing it all at the same time. Acked-by: Richard Cochran <richardcochran@gmail.com> Acked-by: David S. Miller <davem@davemloft.net> Reviewed-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: John Stultz <john.stultz@linaro.org>
This commit is contained in:
committed by
John Stultz
parent
9ffecb1028
commit
7ec88e4be4
@@ -113,10 +113,12 @@ void pps_kc_event(struct pps_device *pps, struct pps_event_time *ts,
|
||||
int event)
|
||||
{
|
||||
unsigned long flags;
|
||||
struct timespec64 real = timespec_to_timespec64(ts->ts_real);
|
||||
struct timespec64 raw = timespec_to_timespec64(ts->ts_raw);
|
||||
|
||||
/* Pass some events to kernel consumer if activated */
|
||||
spin_lock_irqsave(&pps_kc_hardpps_lock, flags);
|
||||
if (pps == pps_kc_hardpps_dev && event & pps_kc_hardpps_mode)
|
||||
hardpps(&ts->ts_real, &ts->ts_raw);
|
||||
hardpps(&real, &raw);
|
||||
spin_unlock_irqrestore(&pps_kc_hardpps_lock, flags);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user