aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pps
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2015-09-28 16:21:28 -0400
committerJohn Stultz <john.stultz@linaro.org>2015-10-01 12:57:59 -0400
commit7ec88e4be461590b5a3817460c34603f76d9b3ae (patch)
tree00bcd8cf85a86a36c91e3e1d4c039a9ae491f770 /drivers/pps
parent9ffecb10283508260936b96022d4ee43a7798b4c (diff)
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>
Diffstat (limited to 'drivers/pps')
-rw-r--r--drivers/pps/kc.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/pps/kc.c b/drivers/pps/kc.c
index e219db1f1c84..a16cea2ba980 100644
--- a/drivers/pps/kc.c
+++ b/drivers/pps/kc.c
@@ -113,10 +113,12 @@ void pps_kc_event(struct pps_device *pps, struct pps_event_time *ts,
113 int event) 113 int event)
114{ 114{
115 unsigned long flags; 115 unsigned long flags;
116 struct timespec64 real = timespec_to_timespec64(ts->ts_real);
117 struct timespec64 raw = timespec_to_timespec64(ts->ts_raw);
116 118
117 /* Pass some events to kernel consumer if activated */ 119 /* Pass some events to kernel consumer if activated */
118 spin_lock_irqsave(&pps_kc_hardpps_lock, flags); 120 spin_lock_irqsave(&pps_kc_hardpps_lock, flags);
119 if (pps == pps_kc_hardpps_dev && event & pps_kc_hardpps_mode) 121 if (pps == pps_kc_hardpps_dev && event & pps_kc_hardpps_mode)
120 hardpps(&ts->ts_real, &ts->ts_raw); 122 hardpps(&real, &raw);
121 spin_unlock_irqrestore(&pps_kc_hardpps_lock, flags); 123 spin_unlock_irqrestore(&pps_kc_hardpps_lock, flags);
122} 124}