diff options
| author | Arnd Bergmann <arnd@arndb.de> | 2015-09-28 16:21:28 -0400 |
|---|---|---|
| committer | John Stultz <john.stultz@linaro.org> | 2015-10-01 12:57:59 -0400 |
| commit | 7ec88e4be461590b5a3817460c34603f76d9b3ae (patch) | |
| tree | 00bcd8cf85a86a36c91e3e1d4c039a9ae491f770 /drivers/pps | |
| parent | 9ffecb10283508260936b96022d4ee43a7798b4c (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.c | 4 |
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 | } |
