mirror of https://gitee.com/openkylin/linux.git
- Fix an integer overflow in the NTP RTC synchronization which lead to latter
happening every 2 seconds instead of the intended every 11 minutes. - Get rid of now unused get_seconds(). -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEzv7L6UO9uDPlPSfHEsHwGGHeVUoFAmANVSEACgkQEsHwGGHe VUr6pQ/+MLoKCld4bR4rXbzD2TSKaIaHt7BuYCOcE4Z3PyxpfYFdX0iJVn8J277X VAvbHOEJLFijGylpCD5vcMnK018GaW5DTvPgb7ijOEgdzHzqOoC/a30WMJWtnBVo dKrtEgbQPgB8eSPuQah5RSWRd6lrywJp79WNbB4k7yqsTVvQLQmbKtjc656jCvCI PKpc7zT/UZcChue6zZUtSXnLPBOM1aog0/7pXbViZc2F8Lv3ulIZy27o9sXSetu2 bsdZzexKEY/Thqx1LiEOt5PhQm5gKSBsBWuS+wPIyI0V0E5eb0rnAlTLyx7hE3yL 9R9axXPhGH5gRM05ikYaF2k4VscImgGLfT18blIb4jWSZ/C+HCtlyfJmcx5VgG4Z F4ZC5esiUD9vM++cdrw8Xeu/QmP+yHBrcspKshjK/NcaEnTm7DyhtyGbFzdEglti NpnNyhrX6EX1AY9RoVpLS3delytbdYABK2BXUBdVpLb034BG5f9p2Z6D1hsmzqE+ rOLxTS0d34enfFglwxCjUkwrO/weEvdpCeqcnm0TyLtq6BGoGGbkKcf510MQ1CB+ UqZxS7WIeYF1IIrm4YVD/ONiH6O1hn/QK6AmHFivgW5fKxvZXIJG850+kYX1JNca LUfF43xi6OfgGdllUWaPsi6fRlkvP+YVd7y37d9pSC7QStdysLQ= =fFOL -----END PGP SIGNATURE----- Merge tag 'timers_urgent_for_v5.11_rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull timer fixes from Borislav Petkov: - Fix an integer overflow in the NTP RTC synchronization which led to the latter happening every 2 seconds instead of the intended every 11 minutes. - Get rid of now unused get_seconds(). * tag 'timers_urgent_for_v5.11_rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: ntp: Fix RTC synchronization on 32-bit platforms timekeeping: Remove unused get_seconds()
This commit is contained in:
commit
025929f468
|
@ -230,6 +230,5 @@ static inline ktime_t ms_to_ktime(u64 ms)
|
|||
}
|
||||
|
||||
# include <linux/timekeeping.h>
|
||||
# include <linux/timekeeping32.h>
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1,14 +0,0 @@
|
|||
#ifndef _LINUX_TIMEKEEPING32_H
|
||||
#define _LINUX_TIMEKEEPING32_H
|
||||
/*
|
||||
* These interfaces are all based on the old timespec type
|
||||
* and should get replaced with the timespec64 based versions
|
||||
* over time so we can remove the file here.
|
||||
*/
|
||||
|
||||
static inline unsigned long get_seconds(void)
|
||||
{
|
||||
return ktime_get_real_seconds();
|
||||
}
|
||||
|
||||
#endif
|
|
@ -498,7 +498,7 @@ int second_overflow(time64_t secs)
|
|||
static void sync_hw_clock(struct work_struct *work);
|
||||
static DECLARE_WORK(sync_work, sync_hw_clock);
|
||||
static struct hrtimer sync_hrtimer;
|
||||
#define SYNC_PERIOD_NS (11UL * 60 * NSEC_PER_SEC)
|
||||
#define SYNC_PERIOD_NS (11ULL * 60 * NSEC_PER_SEC)
|
||||
|
||||
static enum hrtimer_restart sync_timer_callback(struct hrtimer *timer)
|
||||
{
|
||||
|
@ -512,7 +512,7 @@ static void sched_sync_hw_clock(unsigned long offset_nsec, bool retry)
|
|||
ktime_t exp = ktime_set(ktime_get_real_seconds(), 0);
|
||||
|
||||
if (retry)
|
||||
exp = ktime_add_ns(exp, 2 * NSEC_PER_SEC - offset_nsec);
|
||||
exp = ktime_add_ns(exp, 2ULL * NSEC_PER_SEC - offset_nsec);
|
||||
else
|
||||
exp = ktime_add_ns(exp, SYNC_PERIOD_NS - offset_nsec);
|
||||
|
||||
|
|
|
@ -991,8 +991,7 @@ EXPORT_SYMBOL_GPL(ktime_get_seconds);
|
|||
/**
|
||||
* ktime_get_real_seconds - Get the seconds portion of CLOCK_REALTIME
|
||||
*
|
||||
* Returns the wall clock seconds since 1970. This replaces the
|
||||
* get_seconds() interface which is not y2038 safe on 32bit systems.
|
||||
* Returns the wall clock seconds since 1970.
|
||||
*
|
||||
* For 64bit systems the fast access to tk->xtime_sec is preserved. On
|
||||
* 32bit systems the access must be protected with the sequence
|
||||
|
|
Loading…
Reference in New Issue